2

コードにリソースを埋め込んでいます。テキストを読み取り、そのテキストをいくつかの文字列変数に適用したいと考えています。外部ファイルを使用するときにそれを行う方法を考え出しましたが、.exeのみが必要です

string setting_file = "config.txt";
string complete = File.ReadAllText(setting_file);
string Filename = complete.Split('@').Last(); //"Test.zip"; 
string URL = complete.Split('@').First();

リソース config.txt を読み取るにはどうすればよいですか (できれば新しい手順なしで)

4

2 に答える 2

3

このFileクラスはファイル システムにアクセスするためにのみ使用されますが、ファイルはシステムに存在しなくなったため、この行を変更する必要があります。他の人がリンクされた回答でほのめかしているように、リソースのストリームを取得してからそれを読む必要があります。以下のメソッドを呼び出して、メソッド呼び出しを置き換えることができますFile.ReadAllText

private static string GetTextResourceFile(string resourceName)
{
    var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName);
    using (var sr = new StreamReader(stream))
    {
        return sr.ReadToEnd();
    }
}

resourceName は、 のようなものになりますMyNamespace.Myfile.txt。リソース名を見つけるのに問題がある場合はGetManifestResourceNames、アセンブリのメソッドがデバッグ中にそれを特定するのに役立ちます。

また、リソースが見つからない場合、上記のメソッドは例外をスローすることにも注意してください。これは実際のコードで処理する必要がありますが、上記のサンプルを標準のエラー処理コードと混同したくありませんでした。

同じ回答を持つ別の質問については、埋め込みリソース テキスト ファイルの読み取り方法も参照してください(これは、ストリームについてのみ質問するという点で異なりますが、実際にはストリームが埋め込みリソース ファイルにアクセスする唯一の方法のようです)。

于 2013-08-28T17:50:06.297 に答える
0

これは、埋め込みファイルを使用する方法ですProperties.Resources.yourfilename

于 2013-08-28T16:23:06.537 に答える