簡體   English   中英

C# 在內容中查找不存在的文件而不是顯示內容

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM