番号1、2、3で名前が付けられた画像ファイルを含むフォルダーがあります...
画像ファイル名を1から最後まで順番に読み取るにはどうすればよいですか(番号が何であれ)。
質問する
3722 次
4 に答える
8
ファイル配列でOrderByを使用できます。
DirectoryInfo dir = new DirectoryInfo(@"C:\yourfolder");
FileInfo[] files = dir.GetFiles();
//User Enumerable.OrderBy to sort the files array and get a new array of sorted files
FileInfo[] sortedFiles = files.OrderBy(r => r.Name).ToArray();
数値(int)名だけのファイル番号については、次を試してください。
FileInfo[] sortedFiles = files
.OrderBy(r => int.Parse(Path.GetFileNameWithoutExtension(r.Name)))
.ToArray();
于 2012-10-16T04:29:29.163 に答える
2
Habib の答えは正しいですが、番号順に結果が得られないことに注意してください (つまり、2.png を処理する前に 10.png を処理します)。ファイル名をアルファベット順ではなく数値順に並べ替えるには:
foreach (string fileName in Directory.GetFiles(Environment.CurrentDirectory)
.OrderBy((f) => Int32.Parse(Path.GetFileNameWithoutExtension(f1))))
{
// do something with filename
}
于 2012-10-16T04:32:26.263 に答える
1
すべてのファイル名を配列に読み込みます。配列要素を昇順で並べ替えます。終わり!
于 2012-10-16T04:28:29.010 に答える
-2
Arraylist を使用してディレクトリ内のすべてのファイル名を収集し、並べ替えます (英数字のファイル名にも適用できます)。
ArrayList <String> dirFiles=new ArrayList<String>();
File file = new File("DirectoryPath");
File createdFile = null;
String [] str=file.list();
for(int j=0;j<str.length;j++){
dirFiles.add(str[j]);
}
CustomComparator comparator = new CustomComparator();
Collections.sort(dirFiles, comparator);
for(String fileName: dirFiles){
Console.println(fileName);
}
于 2012-10-16T04:35:31.630 に答える