【问题标题】:Deleting file from sdcard in android在android中从sdcard中删除文件
【发布时间】:2012-04-17 12:13:03
【问题描述】:

我正在制作一个应用程序,我必须在其中删除 sdcard 中最近添加的 mp3 文件。歌曲的保存格式为:

Songhello_17_26.amr

其中 17_26 是添加歌曲的时间。谁能帮助我如何删除 SD 卡中最近添加的文件。我的意思是说我要删除时间意味着应该删除最新添加的文件。 任何帮助将不胜感激。

【问题讨论】:

    标签: android file sd-card delete-file


    【解决方案1】:

    正如here 所说,您不能直接这样做,您首先需要获取文件列表File.listFiles()ComparatorFile.lastModified()Arrays.sort() 并删除。

    已编辑:

    File f = new File(path);
    
    File [] files = f.listFiles();
    
    Arrays.sort( files, new Comparator()
    {
        public int compare(Object o1, Object o2) {
    
            if (((File)o1).lastModified() > ((File)o2).lastModified()) {
                return -1;
            } else if (((File)o1).lastModified() < ((File)o2).lastModified()) {
                return +1;
            } else {
                return 0;
            }
        }
    
    }); 
    

    删除最新的:

     files[0].delete();
    

    【讨论】:

    • 您的链接非常好,但请您帮我提供正确的示例代码。我们将不胜感激您的帮助
    • 借助您的代码,我现在可以获取所有 mp3 文件的列表,您能告诉我如何删除最新条目
    • Hotveryspicy ,我也遇到了同样的问题,我也急切地等待您的回答意味着在您的代码的帮助下,我现在从 sdcard 获取了所有文件如何删除最新条目?
    • 文件 file = new File(files[o]);文件.delete();
    • 你可以这样做 files[0].delete();直接。
    【解决方案2】:

    **试试这个方法:

    public static boolean deleteDirectory(File path) {
        // TODO Auto-generated method stub
        if( path.exists() ) {
            File[] files = path.listFiles();
            for(int i=0; i<files.length; i++) {
        enter code here        if(files[i].isDirectory()) {
                    deleteDirectory(files[i]);
                }
                else {
                    files[i].delete();
                }
            }
        }
        return(path.delete());
    }
    

    或者您可以使用以下代码从 sd-card 中删除文件:

    File folder = Environment.getExternalStorageDirectory(); String fileName = folder.getPath() + "/pass/hello.pdf"; with

     String fileName = Environment.getExternalStorageDirectory() + "/pass/hello.pdf";**
    

    【讨论】:

      【解决方案3】:

      试试这个

        public String[] getDirectoryList(String path) {
           String[] dirListing = null;
           File dir = new File(path);
           dirListing = dir.list();
      
           Arrays.sort(dirListing, 0, dirListing.length);
           return dirListing;
        }
      
        String[]  lstFile = getDirectoryList()
       if(lstFile.length > 0){
          File file = new File(lstFile[0]);
          boolean fStatus = file.delete();
      
        }
      

      【讨论】:

      • 我只是举这个例子,但我有动态文件,我不知道名称,我想按时间删除文件意味着最新条目应该被删除
      • 我接受@hotveryspicy 的建议。 File.listFiles(), Comparator,File.lastModified(), Arrays.sort()这个必须做
      【解决方案4】:

      也试试这个:

        String root_sd = Environment.getExternalStorageDirectory().toString();
       File file = new File(path) ;       
        File list[] = file.listFiles();
          for(File f:list)
            {
           name =  file.getName();
          filestv.setText(f.getName());
          //add new files name in the list
         //  delete.setText(name );
      

      那个代码你可以看到保存在sdcard中的最新文件,我建议你关注这个tutorial

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-13
        • 1970-01-01
        • 2012-03-19
        相关资源
        最近更新 更多