2012-10-17 47 views
5

我創造了裝置的內部存儲器中的目錄,用於存儲應用程序use.I文件的文件的數量正在使用:的Android如何檢查目錄中的

File dir = context.getDir(userfavorites, Context.MODE_PRIVATE); 

上面的代碼將創建一個新的如果目錄不存在,則返回現有文件對象;如果目錄已經創建,則返回現有文件對象。我要檢查的是該目錄包含的文件的編號和名稱。如何使用此文件對象完成此任務。

注意:我不想使用設備的外部存儲器。我也無法避免創建目錄,因爲目錄中的文件必須與不在目錄中的其他文件分開。

更新的代碼:

private static boolean IsFoldercontainsFiles(Context context) { 
     // TODO Auto-generated method stub 
     File dir = context.getDir(USER_FAV, Context.MODE_PRIVATE); 
     if (dir.exists()) { 
        if (dir.listFiles() == null){ 
        return false;} //it never execute this line even though its null 
        else{ 
      File childfile[] = dir.listFiles(); 
      Log.i("file no is ", Integer.toString(childfile.length)); 
      if (childfile.length == 0) { 
       return false; 
      } else { 
       return true; 
      } 
       } 
     } else { 
      return false; 
     } 
    } 

在此先感謝

回答

8

檢查的FilelistFiles方法,這將使你的孩子的名單。

+0

我想這應該工作...讓我試試 – Anshul

+0

但是,如果我檢查是否(dir.listFiles()== null)那麼它總是sa Ÿ它不爲null即使thr在目錄中沒有任何內容。我檢查錯誤的方式進行空檢查嗎?請幫助 – Anshul

+0

您可以發佈您的代碼嗎? – Rajesh

5

試試這個

File childfile[] = dir .listFiles(); 
for (File file2 : childfile) { 
    Log.v("file name is ", file2.getName()); 
} 

這裏listFiles()返回所有childfiles的 「目錄」,迭代這將有助於你得到childfiles

+0

謝謝Sharath ...你的解決方案是正確的 – Anshul

+0

但是,如果我檢查是否(dir.listFiles()== null),那麼它總是說它不爲空即使thr是沒有在目錄中。我查錯了方法進行空檢查嗎?請幫忙 – Anshul

+0

你能不能更新你的代碼 –

7
File file=new File("/mnt/sdcard/yourfolder"); 
     File[] list = file.listFiles(); 
     int count = 0; 
     for (File f: list){ 
      String name = f.getName(); 
      if (name.endsWith(".jpg") || name.endsWith(".mp3") || name.endsWith(".some media extention")) 
       count++; 
      System.out.println("170 " + count); 
     } 
-1

簡單的名字:

File dir = new File(path); // "/mnt/sdcard/yourfolder" 

long totalNumFiles = dir.listFiles().length; 
+2

添加一些細節而不是僅轉儲代碼。 –