2015-08-21 89 views
-1

如何使用Java删除文件?我尝试使用java.io如下,但它没有奏效。我尝试了另一种方法,但也没有奏效。如何使用Java删除文件?

package com.mkyong.file; 
import java.io.File; 

public class apples { 
    public static void main(String[] args) {  
     try { 
      File file = new File("C:\Users\Felix\Desktop\cmploop.png"); 

      if (file.delete()) { 
       System.out.println(file.getName() + " is deleted!"); 
      } else { 
       System.out.println("Delete operation is failed."); 
      } 
     } catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 
+1

你是什么意思,但它不工作?你会遇到一些错误,例外吗? – Pshemo

+2

你没有逃过反斜杠,所以字符串被解析为'C:UsersFelixDesktopcmploop.png'。尝试'C:\\ Users \ etc ...' –

+0

你编码不编译 – user1121883

回答

2

尝试用:

File file = new File("C:\\Users\\Felix\\Desktop\\cmploop.png"); 

也许问题是,这是避免你的反斜线。

为什么你必须在反弹之前放置反弹?

那么,在Java中,如果你想使用特殊字符String内,他们将成为String的一部分,你有他们的面前放了backlash。这里一个例子:

String prove = "Hello \\hello\""; 
System.out.println(prove); 

String prove = "Hello \\hello""; 
System.out.println(prove2); 

输出:

在第一个,你会看到 - 在控制台>Hello \hello"

在第二个中它会给你一个错误,因为它将第二个double quote (")识别为String的末尾。

如果你想要一些额外的信息,你可以在这里看到:https://docs.oracle.com/javase/tutorial/java/data/characters.html

我希望这将是对你有帮助!

1

我想你忘记了逃跑的backshlashes的解析,试图℃之后使用一个双反斜线:→

File file = new File("C:\\Users\Felix\Desktop\cmploop.png"); 
          ^
+2

我想你的意思是File(“C:\\ Users \\ Felix \\ Desktop \\ cmploop.png”);正如Error404指出的那样。您发布的代码也不起作用。 – Frecklefoot

0

只要做到这一点作为一个Linux路径。你不关心应用程序运行的女巫操作系统。

File file = new File("/Users/Felix/Desktop/cmploop.png"); 

Error404的响应也是我想的。

File file = new File("C:\\Users\\Felix\\Desktop\\cmploop.png"); 
+0

还是不行的家伙:('进口的java.io.File; 公共类苹果{ 公共静态无效的主要(字串[] args){ \t的System.out.println( “版本:B5”); 试{ \t文件文件=新的文件( “/用户/菲利克斯/桌面/ cmploop.png”); 如果(file.delete()){ \t的System.out.println(file.getName()+“系统:File has Been Delete“); } else {0} {0} {0} {0} System.out.println(”System:Opps Something Worng!“); } } catch(Exception e){ e。的printStackTrace(); } } }' –

+0

如果您遇到异常,我认为这是因为您尝试获取不存在的文件的fileName。 如果你想要一个更具体的回应,你将不得不给我们的堆栈跟踪,并重新打开你的主题至关闭。 – DamienB

1

在Java中,反斜杠(\)不能单独writen,有后有另一个字符。

前面带反斜杠()的字符是转义序列,对编译器有特殊意义。

,如果你把\ n它会作出反应,ENTER键(会去1线下行)
如果你把\ t它将作为一个TAB反应(会放一个TAB空间)

你可以看到整个列表在这里:
https://docs.oracle.com/javase/tutorial/java/data/characters.html

现在,如果你想写\单独它会让一个错误,当写入"将结束String

为了解决这个问题,你可以在它之前放置另一个\。 如果你想写\你将不得不把其他\之前,它会看起来像\\
如果你想写"你将不得不把\之前,它会看起来像\"

这将使\"成为“正常”字符,编译器将不会按照惯用方式使用。

所以,写
"C:\Users\Felix\Desktop\cmploop.png"
你需要把在成
"C:\\Users\\Felix\\Desktop\\cmploop.png"

1

除了事实,你不能逃离反斜杠,你要因为它有一些奇怪的行为,停止使用File取决于你正在运行的操作系统。 Files更稳健:

Files.deleteIfExists(Paths.get("C:/Users/Felix/Desktop/cmploop.png")); 

是的,你也可以使用正常的斜杠。