私のソリューションでは、いくつかのファイルを含むフォルダーがありました。このすべてのファイルには、ビルドアクション「埋め込みリソース」があります。
このコードでファイルを取得できます:
Assembly.GetManifestResourceStream(Assembly.GetName().Name + ".Folder.File.txt");
しかし、すべてを取得する方法はありますか*.txt
このフォルダー内のファイル?名前のリストまたはそれらすべてを反復処理する方法?
チェックアウトできます
Assembly.GetManifestResourceNames()
含まれているすべてのリソースの文字列の配列を返します。次に、そのリストをフィルタリングして、すべての*.txt
ファイルは埋め込みリソースとして保存されます。
詳細については、 GetManifestResourceNames
のMSDNドキュメント を参照してください。
これを試して、すべての。txtファイルがFolderディレクトリ内にある配列を返します。
private string[] GetAllTxt()
{
var executingAssembly = Assembly.GetExecutingAssembly();
string folderName = string.Format("{0}.Resources.Folder", executingAssembly.GetName().Name);
return executingAssembly
.GetManifestResourceNames()
.Where(r => r.StartsWith(folderName) && r.EndsWith(".txt"))
//.Select(r => r.Substring(folderName.Length + 1))
.ToArray();
}
注:ファイル名を取得するには、//.Select(...
行のコメントを解除します。
これで試してみてください。ここですべてのファイルを取得します
string[] embeddedResources = Assembly.GetAssembly(typeof(T)).GetManifestResourceNames();
Tはもちろんあなたのタイプです。汎用的に使用できます