Что состоит в том, чтобы проверить корректный путь, является ли путь путем UNC или локальным путем?

public static void main(String[] args) {
    double g = 1 / 3;
    System.out.printf("%.2f", g);
}

Поскольку как 1, так и 3 являются ints, результат не округлен, но он усечен. Таким образом, вы игнорируете фракции и выполняете только целые.

Чтобы избежать этого, по крайней мере одно из ваших чисел 1 или 3 как десятичная форма 1.0 и / или 3.0.

21
задан David Eliason 6 February 2009 в 15:38
поделиться

3 ответа

Так как путь без двух обратных косых черт в первых и вторых положениях, по определению, не пути UNC, это - безопасный способ сделать это определение.

А соединяют каналом с буквой диска в первом положении (c:) внедренный локальный путь.

путь А без любого из этого вещи (myfolder\blah) является относительным локальным путем. Это включает путь только с единственной наклонной чертой (\myfolder\blah).

15
ответ дан TheSmurf 29 November 2019 в 06:52
поделиться

Попробуйте этот дополнительный метод

public static bool IsUncDrive(this DriveInfo info) {
  Uri uri = null;
  if ( !Uri.TryCreate(info.Name, UriKind.Absolute, out uri) ) {
    return false;
  }
  return uri.IsUnc;
}
16
ответ дан JaredPar 29 November 2019 в 06:52
поделиться

Самый точный подход будет использующим некоторого interop кода из shlwapi.dll

[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
[ResourceExposure(ResourceScope.None)]
[return: MarshalAsAttribute(UnmanagedType.Bool)]
internal static extern bool PathIsUNC([MarshalAsAttribute(UnmanagedType.LPWStr), In] string pszPath);

, Вы затем назвали бы его как это:

    /// <summary>
    /// Determines if the string is a valid Universal Naming Convention (UNC)
    /// for a server and share path.
    /// </summary>
    /// <param name="path">The path to be tested.</param>
    /// <returns><see langword="true"/> if the path is a valid UNC path; 
    /// otherwise, <see langword="false"/>.</returns>
    public static bool IsUncPath(string path)
    {
        return PathIsUNC(path);
    }

@JaredPar имеет лучший ответ с помощью чисто управляемый код .

13
ответ дан Community 29 November 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: