2

特定のディレクトリ内の画像であるファイルを返したい。このような画像パスを作成したい

  string[] ImageNames = Directory.GetFiles(path);


        string tds="";
        for (int i = 0; i < ImageNames.Length; i++)
        {
          tds += "<tr> <td> <img href=/Articles/ArticleImageStore/'" + ImageNames[i] + "' width='64' height='64'></img></tr> </td>";
        }

ただし、ディスク上のファイルの物理パスを返します。どうすればいいですか??

4

2 に答える 2

6

使用できますPath.GetFileName

string[] ImageNames = Directory.GetFiles(path)
                                    .Select(p => Path.GetFileName(p)).ToArray();

これにより、ファイルの名前のみのリストが生成されます。

于 2013-07-10T20:34:38.833 に答える
5

Directory私が使用するクラスを使用するのではなく、DirectoryInfoこれを行うことができます。

 string[] fNames = new DirectoryInfo(dirPath).GetFiles("*.png").Select(x => x.FileName).ToArray();

GetFilesのDirectoryInfoバージョンは、ファイル パスを文字列として返すのではなく、FileInfo オブジェクトを返すため、結果に対してさらに多くのことができます。GetFiles によって返された各 FileInfo インスタンスの FileName を投影するだけで、それを無効にするような選択がありますが、ファイルをさらに処理する必要がある場合は、それを削除してから FileInfo オブジェクトをループできます。

また、画像以外のファイルを簡単に無視できるパターンを持つオーバーロードを使用しています。

DirectoryInfo ドキュメント; http://msdn.microsoft.com/en-us/library/8he88b63.aspx

于 2013-07-10T20:35:53.053 に答える