Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用带有网络路径或驱动器的Java将文件写入远程位置?_Java_File_Io_Windows Share - Fatal编程技术网

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

使用带有网络路径或驱动器的Java将文件写入远程位置?,java,file,io,windows-share,Java,File,Io,Windows Share,我已使用Windows共享在服务器上共享了一个文件夹。在另一台运行代码的计算机上,我映射了指向该文件夹的网络驱动器 在我的代码中,我时不时地将文件从本地计算机传输到服务器。大概是这样的: File srcFile = new File("C:\\test.mpg"); File destFile = new File(...); // error checking FileUtils.moveFile(srcFile, destFile); 对于destFile,我应该使用哪种方法?我目前的

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

在我的代码中,我时不时地将文件从本地计算机传输到服务器。大概是这样的:

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

// error checking
FileUtils.moveFile(srcFile, destFile);
对于
destFile
,我应该使用哪种方法?我目前的做法是:

File destFile = new File("Z:\\folder\\test.mpg");
或使用网络路径:

File destFile = new File("\\192.168.123.123\\folder\\test.mpg");


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

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

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

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

如果你有域名,那么你必须像域名一样使用它;用户:密码,例如字符串smbUrl=”smb://domain;用户名:password@server/共享/文件”;但我们将如何将文件从源移动到目标?我认为您的代码告诉我们要连接受密码保护的文件夹,但如何将文件移动到该文件夹,例如FileUutils.moveFile()accept参数的文件类型仅为file而不是smbfiles映射的驱动程序是否可以由windows服务(如tomcat服务)使用?