我必须基于简单的文件操作代码,包括复制/删除操作。问题是如果我将文件位置声明为路径
File remotefile = new File("//mypc/myfolder/myjar.JAR");
Windows 在网络中找到该文件并执行操作。但是 Linux 机器无法找到该文件。如果我要使用:
File remotefile = new File("file://mypc/myfolder/myjar.JAR");
两个平台都找到了文件。现在我有一种复制文件的方法:
public static void copyFile(File sourceFile, File destFile) throws IOException {
if(!destFile.exists()) {
destFile.createNewFile();
}
FileChannel source = null;
FileChannel destination = null;
try {
source = new FileInputStream(sourceFile).getChannel();
destination = new FileOutputStream(destFile).getChannel();
destination.transferFrom(source, 0, source.size());
}
finally {
if(source != null) {
source.close();
}
if(destination != null) {
destination.close();
}
}
}
如果我将文件 URI 发送到此方法,两个平台都找不到该文件。但是如果我将它作为路径发送,windows 机器可以正常工作,但 linux 机器找不到该文件。
这里可能是什么问题?