C#でディレクトリ内のすべてのファイルを一覧表示する方法
C#で特定のディレクトリに存在するすべてのファイルを一覧表示するには、System.IO名前空間のDirectoryInfoクラスとFileInfoクラスを使用します。ここでは、その基本的な手順をサンプルコードとともに解説します。
1. DirectoryInfoオブジェクトの作成
まず、対象となるディレクトリのパスを指定して、DirectoryInfoオブジェクトを作成します。パスの先頭に「@」を付けることで、エスケープシーケンスを無効化した逐語的文字列リテラルとして扱えます。
// DirectoryInfoオブジェクトの作成 DirectoryInfo mydir = new DirectoryInfo(@"d:\amit");
2. GetFiles()メソッドですべてのファイルを取得
次に、GetFiles()メソッドを呼び出すことで、ディレクトリ内のすべてのファイル情報をFileInfo型の配列として取得できます。
FileInfo[] f = mydir.GetFiles();
サンプルコード(完全な例)
ディレクトリ内のファイル名とサイズを一覧表示する完全なプログラムは以下の通りです。
Example
using System;
using System.IO;
namespace Demo {
class Program {
static void Main(string[] args) {
// DirectoryInfoオブジェクトの作成
DirectoryInfo mydir = new DirectoryInfo(@"d:\amit");
// ディレクトリ内のファイルとその名前・サイズを取得
FileInfo[] f = mydir.GetFiles();
foreach (FileInfo file in f) {
Console.WriteLine("File Name: {0} Size: {1}", file.Name, file.Length);
}
Console.ReadKey();
}
}
}補足:Directoryクラスを使った別の方法
ファイル名だけが不要でよりシンプルに処理したい場合は、静的メソッドであるDirectory.GetFiles()を使用することもできます。このメソッドは、ファイルパスを文字列配列として返します。
string[] files = Directory.GetFiles(@"d:\amit");
foreach (string file in files) {
Console.WriteLine(file);
}さらに、サブディレクトリ内のファイルも含めて再帰的に検索したい場合は、SearchOption.AllDirectoriesを指定します。
string[] allFiles = Directory.GetFiles(@"d:\amit", "*", SearchOption.AllDirectories);
用途に応じて、FileInfoクラスで詳細情報(サイズや更新日時など)を取得する方法と、Directoryクラスで手軽にパス一覧を取得する方法を使い分けると良いでしょう。
-
Javaでディレクトリからファイルのみを一覧表示する方法を解説
Javaで特定のディレクトリに含まれる「ファイルのみ」を一覧表示する方法は複数あります。本記事では、代表的な2つの手法――FileFilterインターフェースとlistFiles()メソッドを組み合わせる方法、そしてFiles.walk()とStream APIを使う方法――を、実際のコード例と実行結果とともに解説します。 listFiles()メソッドとFileFilterインターフェースとは java.io.FileクラスのlistFiles()メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリのオブジェクト(抽象パス名)を配列として返します。 F
-
Javaでディレクトリ内のjpgファイル一覧を取得する方法
FilenameFilterインターフェースを使った方法Fileクラスのlist(FilenameFilter filter)メソッドは、現在のFileオブジェクトが表すパスに存在するすべてのファイルおよびディレクトリの名前をString配列として返します。ただし、返される配列には、指定したフィルター条件を満たすファイル名のみが含まれます。FilenameFilterは、次の単一のメソッドを持つJavaのインターフェースです。accept(File dir, String name)拡張子に基づいてファイル名を取得したい場合は、このインターフェースを実装したクラスを作成し、そのインスタンスをF