2014-02-13 91 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