0

我必须基于简单的文件操作代码,包括复制/删除操作。问题是如果我将文件位置声明为路径

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 机器找不到该文件。

这里可能是什么问题?

4

0 回答 0