从安卓SD卡中删除文件

3

我正在制作一个应用程序,需要删除SD卡中最近添加的MP3文件。歌曲保存的格式为:

Songhello_17_26.amr

17_26 是歌曲添加的时间。有人能帮我删除SD卡中最近添加的文件吗?我的意思是我想删除最新添加的文件。

非常感谢任何帮助。

4个回答

5
根据这里所述,你无法直接这样做,你需要先获取文件列表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();

你提供的链接非常好,但是你能否帮我提供一些合适的示例代码呢?非常感谢你的帮助。 - user881928
通过您的代码,我已能够获得所有mp3文件的列表,请问如何删除最新的条目? - user881928
Hotveryspicy,我也遇到了同样的问题,我也迫切地等待你的答案,意思是通过你的代码我已经从SD卡中获取了所有文件,现在如何删除最新的条目? - user1025050
你能否编辑你的新答案,包括上面答案中的 File file = new File(files[o]); file.delete();? - user881928
1
你可以直接这样删除文件:files[0].delete(); - Mohammed Azharuddin Shaikh
显示剩余4条评论

2

试试这个

  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();

  }

我只是举了一个例子,但我的文件是动态的,我不知道它们的名称,我想按时间删除文件,也就是最新的条目应该被删除。 - user881928
我接受@hotveryspicy的建议。这涉及到File.listFiles(),Comparator,File.lastModified(),Arrays.sort() - Piraba

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卡中删除文件:

File folder = Environment.getExternalStorageDirectory(); String fileName = folder.getPath() + "/pass/hello.pdf"; 与之配合使用

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

0

也试试这个:

  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中的文件,我建议你跟着这个教程一起学习。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接