Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除中间有空格的文件名_Java_File - Fatal编程技术网

Java 删除中间有空格的文件名

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

我在几篇文章中读到,我们希望通过名称中有空格的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());
 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);