用java在远程计算机上创建文件
我正在使用下面的代码,但它没有显示预期的输出用java在远程计算机上创建文件,java,Java,我正在使用下面的代码,但它没有显示预期的输出 public class FileTestOnSever { public static void main(String[] args) { File file = new File("http://10.44.25.30:success.txt"); if (!file.exists()) { try { file.getParentFile().mkdirs();
public class FileTestOnSever {
public static void main(String[] args) {
File file = new File("http://10.44.25.30:success.txt");
if (!file.exists()) {
try {
file.getParentFile().mkdirs();
// file.createNewFile();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}你可能做不到这一点<代码>文件(字符串路径名)不能删除
http://..
东西。似乎您需要一个URI
,但是文件(URI-URI)
只能接受文件:URI
作为参数
请参阅。所说的“远程”是指“在局域网之外”吗 如果它位于LAN之外,则必须使用NFS和Samba等协议使远程计算机的文件系统可供远程客户端使用。如果是这样,您可以通过更正文件路径来使用您的方法。这取决于远程系统上使用的协议
如果远程计算机的文件系统没有共享,您可以选择使用套接字。您必须有权在远程计算机上安装接收器插座。@TravoloPerUno正确,文件系统需要可用 也就是说,SMB(?)共享应该在Windows上开箱即用(您使用的是什么操作系统?)。下面是一个对我有用的例子:
// smb shared directory
new File("\\\\hostname\\c$\\workspace\\foobar1.txt").createNewFile();
// or with a mapped network drive
new File("Z:\\workspace\\foobar2.txt").createNewFile();
// or with URIs
new File(new URI("file:////hostname/c$/workspace/foobar3.txt")).createNewFile();
new File(new URI("file:///Z:/workspace/foobar4.txt")).createNewFile();
如果您想要目录而不是文件,请使用mkdirs()
File file = new File("http://10.44.25.30:success.txt");
这是行不通的。此构造函数的参数是文件名,而不是URL。而且这个URL甚至不是有效的HTTP URL:最后一个冒号应该是/
有一个文件(URI)
构造函数,但它被专门记录为只接受文件:
URI
基本上,
文件
不会讲HTTP。您必须使用一个在客户端有意义的文件名,例如(对于Windows)\\\\10.44.25.30\\success.txt
这将创建一个名为http:
的文件夹-除非您使用的是Windows,其中文件名不能包含:
,其中mkdirs
将返回false。他没有使用文件(URI).
他希望使用它,不是吗?我的意思是他不会写http://...
作为路径名<代码>http://..似乎是一个URI。但是文件
只能接受文件:
。这就是我的意思。远程的意思是在局域网中是否可行URL=newURL(“file://192.168.1.157C://tmp//myfile.txt");您可以尝试“\\\\192.168.1.157\\Share Folder\\tmp\\myfile.txt”或file:////192.168.1.157/Share Folder/tmp/myfile.txt“这也是我的观点:).Hi@Kunal--基本上这意味着C$
目录是一个隐藏的共享文件夹。在这种情况下,它是“C”驱动器。