2017-02-06 86 views
0

我是android編程的新手,我通過android內部存儲編碼。刪除內部存儲文件夾中的文件android

我一直在使用下面

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"); 
相關問題