Java 删除中间有空格的文件名
我在几篇文章中读到,我们希望通过名称中有空格的java删除一个文件,我可以使用删除方法java 6。例如:Java 删除中间有空格的文件名,java,file,Java,File,我在几篇文章中读到,我们希望通过名称中有空格的java删除一个文件,我可以使用删除方法java 6。例如: File f = new File("/mnt/test ex.txt"); f.delete(); 但当我制作这样的文件对象时: StringBuilder fullFileName = "C:/Temp_Folder\week month.xlsx"; fileToRead = new File(fullFileName.toString()); fileToRea
File f = new File("/mnt/test ex.txt");
f.delete();
但当我制作这样的文件对象时:
StringBuilder fullFileName = "C:/Temp_Folder\week month.xlsx";
fileToRead = new File(fullFileName.toString());
fileToRead.delete();
我不能这样做,我得到以下例外情况:
java.io.FileNotFoundException:C:\Temp\u Folder\week month.xlsx文件名、目录名或卷标语法不正确
我错过了什么
注:我也尝试过在文件名上加引号,但没有成功
fileToRead = new File('"'+fullFileName.toString()+'"');
编辑:我已经编辑了stringBuilder a类型上的引号。实际上,StringBuilder对象是一个参数,我们正在添加对象以获取实际名称。我刚刚给了你最后的声明。
就week month.xlsx而言,这是文件名,而不是两个不同的变量,这意味着文件名之间有空格;可能是这样的
使用spaces.xlsx命名
感谢大家的快速周转。根据例外情况:
java.io.FileNotFoundException: "C:\Temp_Folder\week month.xlsx"
您正在查找以下文件:
"C:\Temp_Folder\week month.xlsx"
注意引用!此文件不存在
您必须修改代码以确保文件名不包含不需要的引号
也就是说,假设这里是java 6
File file = new File("C:\\Temp_Folder\\week month.xlsx");
file.delete();
请注意,反斜杠是一个转义字符,因此它在字符串中加倍 您不需要对Java中带有空格的文件名进行特殊处理,也不需要任何其他具有文件访问API的编程语言 不要将Java与命令解释器混合使用 在您的情况下,您的文件应声明为:
new File("C:\\Temp_Folder\\name with spaces.xlsx")
就这样
如果Java报告FileNotFoundException,则存在问题。不幸的是,文件API已损坏,例如,如果文件存在但无法读取,则可能引发此异常。查看完整的堆栈跟踪
帮自己一个忙:使用Java7和新文件API。在这个API中,异常实际上是有意义的——并且删除操作也不会自动失败
至于构建文件名本身,例如,您可以使用String.format:
您需要在fullFileName之后的代码位周围加引号。这是一个字符串生成器。只需使用字符串,而不是字符串生成器。在字符串文字周围加上双引号,并通过将其加倍来避开反斜杠。这段代码中不会出现这种异常。我认为他希望使名称具有动态性。仅供参考。我认为周和月是他主要关心的问题之一。你说得对,我们不需要对Java中带有空格的文件名进行任何特殊处理,但经过多次重复之后,我意识到我已经使用我想要的文件创建了一个InputStream对象,我没有关闭它。从那以后,风和日丽。
final String filename = String.format("C:\\Temp_Folder\\%s %s.xlsx", month, week);