【问题标题】:Unable to delete folder in Download Folder in Android无法删除 Android 下载文件夹中的文件夹
【发布时间】:2020-09-02 02:21:50
【问题描述】:

我无法删除 Downloads 中的文件夹。

已使用 DownloadManager 在 Download/SonyLiv 文件夹中创建文件

File sonyLivFolder =new File
 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),SplashFileName);

// sonyLivFolder path returns - "/storage/emulated/0/Download/SonyLiv    
            if(sonyLivFolder.exists()){
                try{

                   boolean isFileDeleted= sonyLivFolder.delete();
                   if(isFileDeleted){
                       Log.d("SplashDownloadManager","FIle deleted Successfully");
                   }else{
                       Log.w("SplashDownloadManager","FIle Not Deleted"); // Always return Not deleted

                   }

                }catch(Exception e){
                    e.printStackTrace();
                }
            }

manifest.xml 文件中已提供所有权限

【问题讨论】:

  • Android Q?安卓Q?
  • "FIle Not Deleted"?文件夹没有被删除?
  • 您不能删除非空文件夹。
  • @blackapps 为什么我只创建了那个文件夹,里面有两个项目。
  • @blackapps "SonyLiv" 文件夹没有被删除 -"File Not Deleted" 只是一个打印声明

标签: android file download android-download-manager


【解决方案1】:

为什么要尝试 catch 和 boolean 只检查文件是否存在然后 filename.delete(): 函数将删除它对我有用,我不知道你。

【讨论】:

  • 它不会为我删除。通过 DownloadManger 创建的文件和文件夹
  • 您确定您在应用程序中请求您的权限吗?最后它是否进入捕获部分?或者您的应用程序在没有任何崩溃的情况下正常运行?
【解决方案2】:

我找到了答案。我试图删除包含文件的文件夹。为了删除文件夹,第一个文件夹应该是空的。 所以我首先在文件夹中删除了文件。然后删除了文件夹。现在它工作正常。

这是我更新的代码

 File sonyLivFolder =new File
                ( Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),SplashFileName);

        if(sonyLivFolder.exists()){
            try{


               File [] filesList= sonyLivFolder.listFiles();

               for(int i=0;i<filesList.length;i++){
                   filesList[i].delete();
               }

               boolean isFileDeleted= sonyLivFolder.delete();
               if(isFileDeleted){
                   Log.d("SplashDownloadManager","FIle deleted Successfully");
               }else{
                   Log.w("SplashDownloadManager","FIle Not Deleted");

               }

            }catch(Exception e){
                e.printStackTrace();
            }
        }

【讨论】:

  • I found my answer . I was trying to delete folder which contains files . 你找到了吗?我之前告诉过你两次。
猜你喜欢
  • 1970-01-01
  • 2020-06-09
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-01
  • 2019-02-13
相关资源
最近更新 更多