用Kill也可以达到这个效果deletefile,只是这样就不会去回收站了。
Private Sub Command1_Click()
Kill App.Path & \"\\a.exe\"
End Sub
Public Declare Function DeleteFile Lib \"kernel32\" Alias \"DeleteFileA\" (ByVal lpFileName As String) As Longdeletefile \"C:\\1.txt\"
JAVA File类 删除文件
你程序中有个错误,并且逻辑有问题,代码修改了,如下:
public class Test2001 {
private static String s;
public static void main(String[] args) {
test1();// 删除文件
}
private static void test1() {
System.out.println(\"请输入你要删除的文件名\");
s = new Scanner(System.in).next();
File file = new File(\"E:/\");
deleteFile(file);
}
private static void deleteFile(File file) {
File Array[] = file.listFiles();
for (File f : Array) {
if (f.isFile()) {// 如果是文件
if (f.getName().equals(s)) {
f.delete();
System.out.println(\"删除文件成功\");
return;
}
}
}
System.out.println(\"删除文件失败,该文件不存在\");
}
}
1.错误
判断文件名是否相等:if(f.getName()==s)
字符串判断值是否相等使用equals方法,==是比较内存地址,所以你的for一直匹对不到相同文件
2. 逻辑错误
private static void deleteFile(File file) {
File Array[] = file.listFiles();
for (File f : Array) {
if (f.isFile()) {// 如果是文件
if (f.getName() == s) { // 这里已经在比较文件是否相等
f.delete();
System.out.println(\"删除文件成功\");
break;
} else {// 如果不是要删除的文件,跳到下一次循环
continue;
}
} else {// 如果不是文件
deleteFile(file); // 这里
}
}
System.out.println(\"删除文件失败,该文件不存在\");
}
if (f.isFile()) {// 如果是文件
}
} else {// 如果不是文件
deleteFile(file); // 这里不需要再次deleteFile,只会迭代,按钮的逻辑,不是文件,就跳过,应该是continue
}
亲,如果回答满意,请即时采纳,你的理解是我回答的动力,谢谢!!!
报什么错?