2017-02-06 19 views
0

私はアンドロイドプログラミングには新しく、アンドロイドの内部ストレージを使ってコーディングしています。内部ストレージフォルダ内のファイルを削除するandroid

私は、私は1つのファイルを除くすべての内容を「ユーザー」フォルダを削除するフォルダを今すぐ

の下に作成しまった

File mydir = getDir("users", Context.MODE_PRIVATE); //Creating an internal dir; 
     if (!mydir.exists()) { 
      mydir.mkdirs(); 
     } 

     //Getting a file within the dir. 
     try { 

      for (int i = 0; i < 100; i++) { 
       File fileWithinMyDir = new File(mydir, "myfile" + i); 
       outputStream = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file. 
      } 
     } catch (FileNotFoundException e) { 
      e.printStackTrace(); 
     } 

下のコードを使用して、そこにファイルを書かれています。 「File 56」という名前のファイル以外のコンテンツ全体を削除したいとします。 私は、全体のユーザーのフォルダを削除するために使用されるコードは

public void deleteRecursive(File fileOrDirectory) { 

     if (fileOrDirectory.isDirectory()) { 
      for (File child : fileOrDirectory.listFiles()) { 
       deleteRecursive(child); 
      } 
     } 

     fileOrDirectory.delete(); 


    } 

が今どのように私はその特定のファイルを除くすべての内容を削除することができ、ありますか?

答えて

0

として

public void deleteRecursive(File fileOrDirectory) { 

     if (fileOrDirectory.isDirectory()) { 
      for (File child : fileOrDirectory.listFiles()) { 
       if (child.getName().equals("myfile40")) { 

        System.out.println("File 40 - Not deleted"); 
       } else { 
        deleteRecursive(child); 
       } 
     } 

     fileOrDirectory.delete(); 


    } 
0

多分このような何かが素敵でしょうか?

public void deleteRecursiveExcept(File fileOrDirectory, ArrayList<String> ignoreNames) { 
    if(ignoreNames.contains(fileOrDirectory.getName()) return; 

    if (fileOrDirectory.isDirectory()) { 
     for (File child : fileOrDirectory.listFiles()) { 
      deleteRecursive(child); 
     } 
    } 
    fileOrDirectory.delete(); 
} 
0

あなたは、おそらくのような何かを行うことができます。

public void deleteRecursive(File fileOrDirectory, String fileNameToBeSkipped) { 
    if (fileOrDirectory.isDirectory()) { 
     for (File child : fileOrDirectory.listFiles()) { 
      if (fileNameToBeSkipped == null || !child.getName().equals(fileNameToBeSkipped)) { 
       deleteRecursive(child); 
      } 
     } 
    } 

    fileOrDirectory.delete(); 
} 

public void deleteRecursive(File fileOrDirectory) { 
    deleteRecursive(fileOrDirectory, null); 
} 

をとして削除を開始します、

私は単にそれをやった
deleteRecursive(getDir("users", Context.MODE_PRIVATE), "File 56"); 
関連する問題