我有訪問共享文件夾的情況。 以下是一個Java程序示例。Java文件系統:UNC路徑丟失共享名
import java.nio.file.*;
/**
* Test
*/
public class Test
{
public static void main(String[] args)
{
String strPath = "//WG0202";
Path path = FileSystems.getDefault().getPath(strPath).getRoot();
if (path != null)
{
System.out.println(path.toFile().exists());
}
}
}
讓我們假設如下 - 計算機名稱:WG0202
在這臺電腦的共享文件夾是:TestFolder
所以,如果我給的路徑爲:// WG0202/TetFolder
然後它工作正常。
但是,如果我給的路徑:// WG0202
然後,它與下面的異常失敗 -
Exception in thread "main" java.nio.file.InvalidPathException: UNC path is missing sharename: //WG0202 at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:118) at sun.nio.fs.WindowsPathParser.parse(WindowsPathParser.java:77) at sun.nio.fs.WindowsPath.parse(WindowsPath.java:94) at sun.nio.fs.WindowsFileSystem.getPath(WindowsFileSystem.java:255)
我不相信Windows SMB將允許你共享這樣的「根」。實質上,我想說的是,我不相信SMB協議中存在沒有路徑的共享概念。我相信,在Windows中,當你這樣做時,它會觸發SMB調用來列出可用的共享。在您的測試代碼中,您依賴的操作系統(從上下文來看似乎是Windows)來處理與遠程主機的連接。您試圖依賴的功能可能寫入Windows資源管理器,而不是基本操作系統。不過,只是一個預感。 – CodeChimp
是的,它是Windows操作系統。 – Subbu