我正在使用以下代码,但它没有显示预期的输出。
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();
}
}
}
}
答案 0 :(得分:2)
@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()
。
答案 1 :(得分:1)
File file = new File("http://10.44.25.30:success.txt");
这不起作用。此构造函数的参数是文件名,而不是URL。此URL甚至不是有效的HTTP URL:最终冒号应为/
。
有一个File(URI)
构造函数,但具体记录为只接受file:
URI。
基本上File
不会说HTTP。您必须使用在客户端具有含义的文件名,例如(对于Windows)\\\\10.44.25.30\\success.txt
。
答案 2 :(得分:0)
通过“遥控”,你的意思是“你的局域网外面”吗?
如果它位于LAN之外,则远程计算机必须使用NFS和Samba等协议使其文件系统可供远程客户端使用。这是真的,您可以通过更正文件路径来使用您的方法。它取决于远程系统上使用的协议。
如果未共享远程计算机的文件系统,则可以使用套接字。您必须有权在远程计算机上安装接收器插槽。
答案 3 :(得分:-2)
你可能做不到这一点。 File(String pathname)
除http://..
之外不能URI
。您似乎想要File(URI uri)
,但file:URI
只能将{{1}}视为参数。
请参阅http://docs.oracle.com/javase/7/docs/api/java/io/File.html。