2013-06-02 30 views
0

我想讓文件管理器從SD卡中刪除文件。只有一個路徑「/ sdcard/Soundcast /」,我希望能夠從它刪除.mp4和.3gp文件。這裏是我的代碼:如何讓文件管理器刪除文件?

公共類MainActivity擴展ListActivity {

private List<String> items =null; 

private void deleteFile() 
{ 
    // TODO: Implement this method 
} 

@Override 
public void onCreate(Bundle icicle) 
{ 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

    getFiles(new File("/sdcard/Soundcast").listFiles()); } 
@Override 
protected void onListItemClick(ListView l, View v, int position, long id) 
{ int selectedRow = (int)id; if (selectedRow == 0) 
    { getFiles(new File("/sdcard/Soundcast").listFiles()); } 
    else 
    { File file = new File(items.get(selectedRow)); if (file.isDirectory()) 
     { getFiles(file.listFiles()); } 
     else 
     { 
      new AlertDialog.Builder(this) .setTitle("Ability to open files will come in future updates.") 
      .setMessage("Do You Want To Delete this recording?") 
      .setPositiveButton("Yes", new DialogInterface.OnClickListener(){ 
       public void onClick(DialogInterface dialog, int button){ 
        deleteFile(); 
       } 
      }) 
      .setNegativeButton("No", new DialogInterface.OnClickListener(){ 
      public void onClick(DialogInterface dialog, int button){ 
       } 
      }).show();} 
      } 
      } 
private void getFiles(File[] files) 
{ items = new ArrayList<String>(); 

    items.add(getString(R.string.goto_root)); for (File file : files) 
    { items.add(file.getPath()); } 

    ArrayAdapter<String> fileList = new ArrayAdapter<String>(this, R.layout.file_list_row, items); 
    setListAdapter(fileList); } } 
+0

再次什麼是問題?你有什麼嘗試?它只是你的'deleteFile()'方法的實現,你需要嗎? – Ridcully

+0

這是我到目前爲止嘗試過的。沒有其他的。 – user2433462

回答

0

由於Waza_Be已經聲明,所有你需要的是file.delete()。所以只要刪除您DELETEFILE方法而不是調用它(在正對話框按鈕的onclick方法),只需調用file.delete(),你就大功告成了:

public void onClick(DialogInterface dialog, int button) { 
    // deleteFile();  <-- not needed 
    file.delete(); // <-- do this instead 
} 
0

您應該使用的代碼,或類似的東西:

{ File file = new File(items.get(selectedRow)); if (file.isDirectory()) 
    { getFiles(file.listFiles()); } 
    else 
    { 
     new AlertDialog.Builder(this) .setTitle("Ability to open files will come in future updates.") 
     .setMessage("Do You Want To Delete this recording?") 
     .setPositiveButton("Yes", new DialogInterface.OnClickListener(){ 
      public void onClick(DialogInterface dialog, int button){ 
       booolean success = file.delete() 
       //Refresh UI and your list, so the deleted file is no more diplayed 
      } 
     }) 

和過濾的擴展名是不是真的複雜..

我不明白你的問題在哪裏..

+0

我試圖刪除點擊擴展名爲.mp4和.3gp的任何文件。點擊後會顯示一個對話框,要求刪除該文件,並按鈕yes和no,當點擊yes時會刪除它。 – user2433462

+0

所以你想解釋如何用2個按鈕創建對話框?我們已經解釋瞭如何刪除這個文件......沒有人真的得到你需要支持的地方...... –