1. ホーム
  2. c#

[解決済み] Directory.GetFiles: フルパスではなく、ファイル名だけを取得する方法は?重複

2023-05-28 02:23:46

質問

重複の可能性があります。

どのようにC#を使用して、ディレクトリ内のファイル名のみを取得するには?

C#を使って、あるフォルダー内のファイル一覧を取得したい。

私の目標は ["file1.txt", "file2.txt"]

ということで、こう書きました。

string[] files = Directory.GetFiles(dir);

残念ながら、このような出力が得られます。 ["C:\\dir\\file1.txt", "C:\\dir\\file2.txt"]

不要な "C:\dir" の部分を後で取り除くことができましたが、もっとエレガントな解決策がありますか?

どのように解決するのですか?

この場合 System.IO.Path.GetFileName を使うとよいでしょう。

例.

string[] files = Directory.GetFiles(dir);
foreach(string file in files)
    Console.WriteLine(Path.GetFileName(file));

を使うこともできますが FileInfo を使うこともできますが、これはあなたが既に使っている方法(単にファイルパスを取得する)よりもずっとヘビー級です。ですから、私は GetFiles の追加機能が必要でない限り FileInfo クラスの追加機能が必要な場合を除きます。