5

我尝试在 Mac OSX 上从 Java 访问网络文件夹/UNC 路径。在 Windows 上,以下测试程序可以正常工作(至少有一个测试路径):

public class PathTest {
    public static void main(String[] args) {

        for (String path : Arrays.asList(
                "\\\\myserver\\transfer", "//myserver/transfer", "file://myserver/transfer", "smb://myserver/transfer")) {

            File f = new File(path);
            System.out.println(path + ": " + f.getAbsolutePath() + ", " + f.exists());

            Path p = Paths.get(path);
            System.out.println(path + ": " + p.toAbsolutePath() + ", " + Files.exists(p));
        }
    }
}

在 Mac OS 上,它无法访问文件夹:

\\myserver\transfer: /Users/tim/IdeaProjects/PathTest/\\myserver\transfer, false
//myserver/transfer: /myserver/transfer, false
file://myserver/transfer: /Users/tim/IdeaProjects/PathTest/file://myserver/transfer, false
smb://myserver/transfer: /Users/tim/IdeaProjects/PathTest/smb://myserver/transfer, false

当我使用 Finder 时,我可以使用“smb://myserver/transfer”访问文件夹(使用访客用户)。怎么了?

编辑添加了 NIO.2 测试

4

1 回答 1

6

挂载分区并作为任何本地目录访问它,或者使用专用库,例如​​ JCIFSApache Commons VFS

于 2013-08-09T12:39:44.603 回答