3

最近追加したsdcardのmp3ファイルを削除しなければならないアプリを作っています。曲が保存される形式は次のとおりです。

Songhello_17_26.amr

ここで、17_26は曲が追加された時刻です。誰かがSDカードに最近追加されたファイルを削除する方法を教えてもらえますか?時間を削除したいということは、最後に追加したファイルを削除する必要があるということです。どんな助けでもありがたいです。

4

4 に答える 4

6

ここに記載されているように、直接それを行うことはできません。最初にファイルのリストを取得し、、、、および削除する必要がFile.listFiles()ありComparatorます。File.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();
于 2012-04-17T12:15:51.600 に答える
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";**
于 2012-04-17T12:41:25.083 に答える
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();

  }
于 2012-04-17T12:16:34.737 に答える
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カードに保存されている最新のファイルを見ることができます。このチュートリアルに従うことをお勧めします。

于 2015-06-13T14:42:14.153 に答える