8

アプリケーション用のファイルを保存するために、デバイスの内部メモリにディレクトリを作成しています。

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;
        }
    }

前もって感謝します

4

6 に答える 6

12

listFilesその方法を確認するFileと、子のリストが表示されます。

于 2012-10-17T06:24:59.750 に答える
11
    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);
        }
于 2014-07-09T07:20:40.927 に答える
5

これを試して

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

ここでlistFiles()は、「dir」のすべての子ファイルを返します。これを繰り返すと、子ファイルの名前を取得するのに役立ちます。

于 2012-10-17T06:38:04.677 に答える
3

単純:

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

long totalNumFiles = dir.listFiles().length;
于 2017-09-18T11:37:16.153 に答える
0

ディレクトリ内のファイル数を取得するには、このコードサンプルを試してください

private int getNumberOfFiles() throws FileNotFoundException {
    File outFile = new File(outFolder);
    if (!outFile.exists())throw new FileNotFoundException();
    int numberofFiles = outFile.listFiles(new FileFilter() {
        @Override
        public boolean accept(File file) {
            return (file.getPath().startsWith("frame_")&&(file.getPath().endsWith(".jpg")||file.getPath().endsWith(".jpeg")));
        }
    }).length;
    return numberofFiles;
}
于 2018-12-22T08:08:49.063 に答える
0

クラスのlistFilesメソッドは、ディレクトリ内のファイルまたはディレクトリごとに1つずつ、Fileオブジェクトの配列を返します。File

再帰を使用して、ディレクトリとそのサブディレクトリ内のすべてのファイルを見つけることができます。

fun File.getFileCountRecursively(): Int {
    var fileCount = 0

    if (exists() && isDirectory) {
        listFiles()?.forEach { child ->
            fileCount += if (child.isDirectory) child.getFileCountRecursively() else 1
        }
    }

    return fileCount
}
于 2021-04-01T07:25:33.887 に答える