从java访问文件名中包含空格的文件

我想访问一个目录中的文件,该目录中包含来自java程序的文件名空格,但它不访问文件。

场景是我在文件中有文件名。 来自该文件的iread文件名,无法在java中打开带空格的文件。

我们使用File.exist函数来检查文件是否存在但返回false。

我已经尝试了几种格式来表示空格llike“ab \ c”表示文件名ab c和ab%20c表示同一文件。

但没有任何帮助。

这对我来说很好。 我根本没有逃避它们。

System.out.println(new File("/tmp/test 1/").exists()); 

确保为操作系统使用正确的文件分隔符。

 System.getProperty("file.separator") 

解码路径,就像这样

 String decodedPath = URLDecoder.decode(path, "UTF-8"); 

好吧,我在阅读Java时从未遇到文件名中的空格问题。 只需确保正确地转义路径分隔符。 我希望文件名,如果您要使用Java打印出来,请解析具有适当访问权限的现有文件。

如果您将输入作为文件路径,请尝试使用sc.nextline()来读取空格

尝试将其转换为URL

 URL url = file.toURI().toURL(); 

尝试从Windows操作系统上的Servlet读取资源位置时遇到了类似的问题。 以下一行对我有用。

 String path = config.getServletContext().getResource("/app").toString(); path = URLDecoder.decode(path,"UTF-8"); path = path.replaceAll("file:/", ""); path = path.replaceAll("\\u0020", "\\ "); File verLocation = new File(path); 

在以上所有行之后,verLocation.exists()返回true,否则也是false。