[英]C# looks for non-existent file in contents rather than displaying contents
我正在 C# 中嘗試文件 I/O(因為我是初學者,所以以前根本沒有這樣做過)。 我在解決方案的資源中放置了一個包含“一些文本”(字面意思)的簡單文本文件,根據在線教程編寫了一些代碼,然后按 F5 進行構建。 我期待“一些文本”出現在控制台 window 中,但出現了一個例外!
Could not find file 'F:\VS\FileTesting\FileTesting\bin\Debug\some text'.
正如我上面所說,“一些文本”是文件的內容,它的名字是“important.txt”
這是我正在使用的代碼:
try
{
/* using (StreamReader reader = new StreamReader(Properties.Resources.important))
{
string line;
while ((line = reader.ReadLine()) != null)
{
Console.WriteLine(line);
}
} */
string contents = File.ReadAllText(Properties.Resources.important);
Console.WriteLine(contents);
Console.WriteLine("Contents displayed successfully.");
Console.ReadKey();
}
catch (Exception e) {
MessageBox.Show("An error occured. Exception: " + e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
(上面的評論部分來自這里的另一篇文章,解釋了如何逐行讀取文件)
根據下面@JonSkeet 的評論,我想我找到了原因:它看起來像File.ReadAllText
讀取Properties.Resources.important
的內容並將其視為文件名而不是預期的文本。 “一些文本”是它唯一能找到的東西,因此它在構建目錄中搜索具有該名稱的文件,這是不存在的。 我所做的是將原始文件重命名為“pointer.txt”,在其中寫入“important.txt”並將其用作指向我要讀取的文件的指針。
我可以讓它讀取一個外部文件,但我希望我的資源中有這個文件。 另外,我似乎無法將其設為嵌入式 - 該選項已禁用。 這也必須做任何事情嗎?
任何幫助表示贊賞。
您不需要使用File
方法來讀取資源的內容。 File
方法用於從文件系統中讀取文件。
要訪問資源的內容,只需編寫Properties.Resources.important
。 您可以執行Console.WriteLine(Properties.Resources.important)
將資源的內容寫入控制台。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.