あなたのプロジェクト内のすべてressourcesのリストを取得します。
すべてのexeファイルを検索する場合は(次のスニペットを使用してアセンブリ名を取得します)
var ressourceList = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
var filename = ressourceList.Where(x => x.EndsWith(".exe")).FirstOrDefault();
文字列の形式はこれだけ、その文字列の最初の部分を削除し、あなたが埋め込まれたressourceファイル名を持つ"YourProgram.YourAssemblyName.exe"
です。
編集:あなたのリソースを列挙し、先頭のネームスペースと末尾のファイル拡張子を削除してみませんか?
// returns just the names
public static IEnumerable<String> GetEmbeddedResourceNames()
{
var returnList = new List<String>();
foreach (var res in Assembly.GetExecutingAssembly().GetManifestResourceNames())
{
var s = Assembly.GetExecutingAssembly().GetName();
returnList.Add(Regex.Replace(res.Replace(s.Name + ".", ""), @"\.[^.]*$", ""));
}
return returnList;
}
編集:
名前でressourceを取得するには、それはLINQの式を使用して、非常に簡単ですvar prop = Properties.Resources.ResourceManager.GetObject("YourRessourceNameWithoutExtension");
これは私の質問ではありません。私はexeを別個の項目として追加していませんが、私はそれをリソースに追加して、将来はそれを最終的に組み込むことができます。私の質問は、どのように私はすべてのプログラムで、リソースの項目から文字列名を取得します。実行時に "myApp"の名前は何ですか?私はちょうどハードコード "myapp.exe"を暗記しません – nawfal
リソースを使用するとFULLPATHはありません。なぜなら、それはハードドライブではないから...とにかくあなたが何を望んでいるのか正確に説明することができます –
私は、また、私はfullPathを必要とする必要はありません。ちょうどファイル名が行います。 – nawfal