2012-04-17 126 views
3

我正在製作一個應用程序,我必須刪除SD卡中最近添加的mp3文件。其中的歌曲被保存的格式爲:從android中刪除SD卡中的文件

Songhello_17_26.amr 

其中17_26是當加入歌曲的時間。任何人都可以幫助我如何刪除最近添加的SD卡中的文件。我的意思是說我想刪除時間意味着最新添加的文件應該被刪除。 任何幫助將不勝感激。

回答

6

由於它規定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(); 
+0

您的鏈接非常好,但你可以請幫助我適當的示例code.Your的幫助將不勝感激 – Aditya1510 2012-04-17 12:26:34

+0

請參閱編輯的答案。 – 2012-04-17 12:37:38

+0

在您的代碼的幫助下,我能夠獲得所有mp3文件的列表,現在可以請您告訴我如何刪除最新條目 – Aditya1510 2012-04-17 12:55:23

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

    } 
+0

我剛剛給這個例子,但我有動態文件,我不知道名稱,我想按時間刪除文件意味着最新的條目應該刪除 – Aditya1510 2012-04-17 12:21:28

+0

我接受@hotveryspicy建議。 '文件。listFiles(),比較器,File.lastModified(),Arrays.sort()'這必須做 – Piraba 2012-04-17 12:35:57

3

**試試這個方法:

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

的代碼,你可以看到最新的文件保存在SD卡中,我建議你沿着這個tutorial