2014-02-13 136 views
0

我正在做的是需要寫一個txt文件還記得在C#中的一些設置應用程序後,寫入TXT文件。我用這種類型的代碼:崩潰關於發佈

class Preferiti 
{ 
    public static string[] Read() 
    { 
     string path = "Assets/mytxtfile.txt"; 
     using (StreamReader sr = new StreamReader(path)) 
     { 
      string[] values = sr.ReadToEnd().Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries); 
      return values; 
     } 
    } 

    public async static void Write(string mod) 
    { 
     string[] try = Read(); 
     bool write = true; 
     for (var i = 0; i < try.Length; i++) 
     { 
      if (try[i] == mod) 
      { 
       write = false; 
       break; 
      } 
     } 
     if (write) 
     { 
      string path = "Assets/mytxtfile.txt"; 
      using (StreamWriter outfile = new StreamWriter(path, true)) 
      { 
       await outfile.WriteLineAsync("" + mod); 
       MessageBox.Show("Added to list"); 
      } 
     } 
     else 
     { 
      MessageBox.Show("It exist in the list"); 
     } 
    } 
} 

當我嘗試在我的設備調試,它的工作沒有任何問題,但如果我發佈在它與文件的任何問題,閱讀的商店,但在那一刻在其上寫入崩潰並退出應用程序。

你能幫我解決這類型的錯誤?

非常感謝您

我後,你建議我校的形象......爲什麼這樣對我?

Problem

+0

它拋出了什麼錯誤? – MattR

+0

在相關說明中,當使用streamReader時,您應該始終檢查您的文件是否存在,然後再嘗試讀取它 – Svexo

+0

我真的不知道錯誤是什麼,因爲它出現在已發佈的版本上。在調試版本中,所有工作都沒有問題讀取過程沒有問題...我嘗試寫入txt文件時出現問題。 – Roberto

回答

0

我猜公佈的發行版時,你是不是複製的原始文件。

在Visual Studio中,雙擊mytxtfile.txt打開屬性窗口。在屬性窗口,設置屬性「複製到輸出目錄」「始終複製」

+0

我只是做了該操作...但仍然沒有工作... – Roberto

+0

所以,現在請確保您有'Assets'文件夾和應用程序文件夾'mytxtfile.txt'(其中你'.exe'所在)。如果是這樣的話,我會添加MsgBoxes來查找失敗的確切位置。 – etaiso

+0

我認爲是問題,因爲文件是隻讀的,但我不能找到proprety爲刪除... – Roberto