使用带网络路径或驱动器的Java将文件写入远程位置?

ohs*_*kay 4 java io file windows-share

我使用Windows共享在我的服务器上共享了一个文件夹.在另一台运行我的代码的计算机上,我已经映射了一个指向该文件夹的网络驱动器.

在我的代码中,我不时地将文件从本地计算机传输到我的服务器.像这样的东西:

File srcFile = new File("C:\\test.mpg");
File destFile = new File(...);

// error checking
FileUtils.moveFile(srcFile, destFile);
Run Code Online (Sandbox Code Playgroud)

对于destFile,我应该使用哪种方法?我目前的做法:

File destFile = new File("Z:\\folder\\test.mpg");
Run Code Online (Sandbox Code Playgroud)

或使用网络路径:

File destFile = new File("\\192.168.123.123\\folder\\test.mpg");
Run Code Online (Sandbox Code Playgroud)

我问这个是因为最近我遇到了文件传输失败的情况,因为我的程序无法写入我的网络驱动器,因为它没有登录,我必须手动转到驱动器并输入我的凭据并启用"保持连接" " 选项.

Ahs*_*hah 8

您可以使用JCIFS库访问 Java 中的 Windows SMB 共享。使用它,您可以执行以下操作:

String smbUrl = "smb://username:password@server/share/file";
SmbFileOutputStream fos = new SmbFileOutputStream(new SmbFile(smbURL));
Run Code Online (Sandbox Code Playgroud)


chr*_*ke- 5

您可以等效地使用映射驱动器或完整网络路径; Java并不关心,只是将文件名传递给操作系统.请注意,如果您使用的是网络路径,则需要\\\\从头开始.