文件分隔符对Java文件路径是否重要?

时间:2014-03-27 19:59:36

标签: java file upload path separator

我正在测试将文件上传到服务器的Java Web应用程序。它使用一个旧库 - com.jspsmart.upload.smartupload - 据我所知应该可以工作。 saveAs方法需要一个应保存文件的路径。我试过上传文件但无法让它工作。我觉得这个问题可能与文件路径有关。如果安装目录类似于C:\ my_app,则路径为C:\ my_app \ uploads / filename.txt。这有关系吗?或者可能还有其他因素导致它无法上传?上传代码被try / catch包围,并且不会返回异常,所以我不确定为什么它不起作用。

我在图书馆找到的一些文档:http://demo.easyhis.com/jspsmartupload/help/doc/com/jspsmart/upload/File.html

示例代码:

private static string FS = System.getProperty("file.separator");

try {

    myFile = myUpload.getFiles().getFile(0);
    importFolder = Globals.getInstallDir() + FS + "uploads";
    myFile.saveAs( importFolder + "/" + request.getParameter("import_file_name"), SmartUpload.SAVE_PHYSICAL);

} catch (Exception e) {
    // outputs error
}

2 个答案:

答案 0 :(得分:0)

Java可以在Windows下无差别地使用/\作为文件分隔符,但它是一个或另一个 - 不要同时执行这两个操作!

无论如何,使用Path,您将确保获得正确的工作路径:

Paths.get(Globals.getInstallDir()).resolve(FS).resolve("uploads")
    .resolve("import_file_name").toString();

请注意FS此处不应该是绝对的(即没有开头/\)。

答案 1 :(得分:0)

使用File.separator。它将系统的默认路径返回到特定的文件分隔符。

private static string FS = File.separator;