如何在Java中访问文件系统?

7

我需要从服务器迭代本地机器上的文件夹以解析一些文件。这可行吗?如果是真的,请告诉我如何做。

4个回答

7
我更喜欢使用Commons VFS。它可以处理本地文件系统、SFTP和许多其他文件系统,只需更改文件路径即可完成所有操作,非常方便。
FileSystemManager fsManager = VFS.getManager();
FileObject directory = fsManager.resolveFile("path/to/dir");
FileObject[] files = directory.findFiles(fileSelector);

for (FileObject file : files) {
    // do something
}

@DmitryB,你能给我展示一下你的代码吗?当你关闭FileSystemManager时可能会发生这种情况... - user219882
@DmitryB 只是为了明确一下。您是否正在尝试远程访问文件系统(从 Windows 访问 Solaris)?如果是这样,那么我认为您不能仅使用 C:\... 路径,而必须使用 SFTPHTTP 协议。 - user219882
Tomas,感谢你的回答。是的,我做了。这是否意味着我需要共享文件夹才能访问它? - DmitryB
Tomas,也许在这种情况下我需要使用签名小程序? - DmitryB
@DmitryB,您不需要任何特殊的东西。只需在您的Solaris上安装一个SFTP服务器,然后您就可以使用此路径:sftp://[username]:[password]@[server-url]/path/to/dir。其余部分都是相同的 - VFS会为您完成所有操作。 - user219882
显示剩余3条评论

2
您也可以浏览Java 7中的新包nio.2,这里有教程
许多新的和强大的功能。

0
如果您可以通过SSH、FTP或FTPS进行连接,那么这个操作将相当容易。如果您要讨论HTTP,则服务器必须设置为显示目录=true,并且您需要解析http响应以获取文件名。

0
尝试实现一个客户端服务器应用程序,其中服务器部分安装在客户端PC上,并为客户端部分(将在服务器PC上运行)提供所需的信息。或者,您可以在客户端机器上使用FTP服务器,并在需要时从服务器访问它。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接