用JButton删除目录的Java程序

用JButton删除目录的Java程序,java,swing,file-io,actionlistener,delete-file,Java,Swing,File Io,Actionlistener,Delete File,我让我的程序删除指定文件中的文件,但后来我决定让它删除整个目录!这是到目前为止我的代码,按下按钮时它什么也不做。。。(按钮上确实有一个ActionListener) 也会打印“用户”目录中的每个文件,但不会删除它们。它也不会删除文件夹本身。 请帮忙!任何建议或代码源将是伟大的 delete()返回您忽略的布尔值 true-当且仅当文件或目录已成功删除时 false-由于某些原因无法删除 要获取原因,请使用删除目录,因为如果由于某种原因无法删除文件,则会出现异常 引用JavaDoc 注意,File

我让我的程序删除指定文件中的文件,但后来我决定让它删除整个目录!这是到目前为止我的代码,按下按钮时它什么也不做。。。(按钮上确实有一个ActionListener)

也会打印“用户”目录中的每个文件,但不会删除它们。它也不会删除文件夹本身。 请帮忙!任何建议或代码源将是伟大的

delete()
返回您忽略的
布尔值

true
-当且仅当文件或目录已成功删除时

false
-由于某些原因无法删除

要获取原因,请使用删除目录,因为如果由于某种原因无法删除文件,则会出现异常

引用JavaDoc

注意,Files类定义了delete方法来抛出 无法删除文件时发生IOException。这对于错误是有用的 报告并诊断无法删除文件的原因


我在我的机器上运行了你的代码,它工作正常。可能你没有删除目标目录的权限。你可以用我的代码测试,找出哪个文件的删除操作失败

public static boolean deleteDirectory(File directory) {
    if(directory.exists()){
        File[] files = directory.listFiles();
        if(files != null){
            for(int i = 0; i < files.length; i++) {
                if(files[i].isDirectory()) {
                    deleteDirectory(files[i]);
                }
                else {
                    if(files[i].delete()) {
                        System.out.println("Successfully delete: " + files[i].getAbsolutePath());
                    } else {
                        System.out.println("Failed to delete: " + files[i].getAbsolutePath());                          
                        return false;
                    }
                }
            }
        }
    }
    if(directory.delete()){
         System.out.println("Successfully delete: " + directory.getAbsolutePath());
         return true;
    } else {
        System.out.println("Failed to delete: " + directory.getAbsolutePath());                         
        return false;
    }
}
公共静态布尔删除目录(文件目录){
if(directory.exists()){
File[]files=目录.listFiles();
如果(文件!=null){
对于(int i=0;i
您是否有任何例外情况?您可能无权删除它!读取:您正在忽略File.delete()的结果,它告诉您该文件是否已被删除。正如javadoc所建议的,您应该更喜欢Files.delete(),它会抛出一个异常,并显示一条提示删除失败原因的消息。请确保您有权从操作系统编辑此路径。因此,是的,我用我的代码测试了这一点,结果表明一切都失败了。。这是管理员的问题吗?因为我是电脑上唯一的用户。或者该文件是只读文件还是其他文件
删除失败:G:\…\FileIO plugins\Accounts\test\game.ini
删除失败:G:\…\FileIO plugins\Accounts\test\test.Accounts
删除失败:G:\…\FileIO plugins\Accounts\test
有什么建议吗?我刚在Windows 7中删除了一个只读文件。你能尝试手动删除这个目录吗?也许可以这些文件被其他进程占用。如果是,Windows将提示警告。
System.out.println("deleting: " + files[i].getName());
public static boolean deleteDirectory(File directory) {
    if(directory.exists()){
        File[] files = directory.listFiles();
        if(files != null){
            for(int i = 0; i < files.length; i++) {
                if(files[i].isDirectory()) {
                    deleteDirectory(files[i]);
                }
                else {
                    if(files[i].delete()) {
                        System.out.println("Successfully delete: " + files[i].getAbsolutePath());
                    } else {
                        System.out.println("Failed to delete: " + files[i].getAbsolutePath());                          
                        return false;
                    }
                }
            }
        }
    }
    if(directory.delete()){
         System.out.println("Successfully delete: " + directory.getAbsolutePath());
         return true;
    } else {
        System.out.println("Failed to delete: " + directory.getAbsolutePath());                         
        return false;
    }
}