2

次のコードがあります。

private string[] FindExistingDocuments()
{
    string supportedImageFormats = "jpg,pdf,doc,docx,xlsx";

    DirectoryInfo documentPath = new DirectoryInfo("...");

    string supportedFileTypes = String.Join(",*.", supportedImageFormats.Split(','));
    string[] files = Directory.GetFiles(documentPath.FullName, supportedFileTypes, SearchOption.AllDirectories);

    return files;
}

ファイルタイプの特定のリストを検索する方法として機能しますが、現在のコードの問題はString.Join、最初の項目にセパレーターを配置しないことです (これは理にかなっています)。

したがって、私の結果は次のsupportedFileTypesようになります。

jpg,*.pdf,*.doc,*.docx,*.xlsx

しかし、私はそれが欲しい:

*.jpg,*.pdf,*.doc,*.docx,*.xlsx

どういうわけかこれをかなりきれいな方法で作ることはできますか?

注: の内容を変更することはできませんsupportedImageFormats

4

2 に答える 2

1

@Habibからの回答の優雅さは認識していますが、LINQ以外の回答もあります

 string newStr = "*." + string.Join(",*.", supportedImageFormats.Split(','));

ちなみに、この種のパターンを Directory.GetFiles に渡すことはできないため、これはすべて無意味です。

于 2013-09-10T15:38:46.633 に答える