文件位置为URI,找不到文件

时间:2012-07-05 06:34:25

标签: java

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

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

这可能是什么问题?

0 个答案:

没有答案