2016-04-12 12 views
0

プロジェクトにリソースとしてtxtファイルを追加すると、そのリソースの内容を文字列としてどのように消費できますか?Visual Studioでファイルリソースを文字列として使用するにはどうすればよいですか?

最も近いのは、リソースマネージャを使用してアンマネージストリームを取得することです。しかし、これはNULLエラーがスローされます。

using (StreamReader sr = new StreamReader(
    Properties.Resources.ResourceManager.GetStream(
     "TestFile.txt", CultureInfo.CurrentCulture))) 
{ 
    Console.WriteLine(sr.ReadToEnd()); 
} 
+0

(リソースではなく)組み込みリソースではありませんか?もしそうなら、あなたは 'GetManifestResourceStream'を使用したいでしょう –

+1

スティーブンスのコメントに追加:[link](http://stackoverflow.com/questions/3314140/how-to-read-embedded-resource-text-file) – Klatschen

+1

'test.txt'という名前のテキストファイルをリソースとして追加し、それを' Properties.Resources.test'に 'String'として追加しました。だから私はあなたがどうやってやったのか疑問に思っています。プロジェクトプロパティ、 'Resources'->' Add Resource'-> 'Add Existing File'に行きました。その後、私は "文字列としてコンテンツを消費する"必要はありません、それは*すでに文字列です。 – Quantic

答えて

1

あなたもこれを行うことができます:

var myAss = Assembly.GetExecutingAssembly(); 
var mytxtFileResource = "Namespace.Project.MyTxtFile.txt"; 

using (Stream stream = assembly.GetManifestResourceStream(mytxtFileResource)) 
using (StreamReader reader = new StreamReader(stream)) 
{ 
    string result = reader.ReadToEnd(); 
} 
+0

の複製。 – Klatschen

0

をあなたは ちょうどこの https://msdn.microsoft.com/en-us/library/aa287548(v=vs.71).aspx

のようにそれを書きテキストファイルのためにそのようにそれを行う必要がいけません
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test.txt"); 
file.WriteLine(lines); 
file.Close(); 

このように読んでください: https://msdn.microsoft.com/en-us/library/aa287535(v=vs.71).aspx

int counter = 0; 
string line; 

// Read the file and display it line by line. 

System.IO.StreamReader file = 
    new System.IO.StreamReader("c:\\test.txt"); 
while((line = file.ReadLine()) != null) 
{ 
    Console.WriteLine (line); 
    counter++; 
} 

file.Close(); 
関連する問題