2017-10-13 124 views
-1

我想創建一個程序,檢查如果以下文件存在,如果不存在,創建一個並寫入名稱。但該程序不會創建文件,也不會拋出任何異常。代碼不創建文本文件C#

 string verify; 
     string name = textBox1.Text; 
     string path = Path.Combine(@"C:\assets\"+ name + ".txt"); 
     if (!File.Exists(path)) 
     { 
      File.Create(path); 
      File.WriteAllText(path, name); 
     } 
     else if (File.Exists(path)) 
     { 
      verify = File.ReadAllText(path); 
      if (verify == name) 
      { 
       return; 
      } 
     } 
+0

你可以添加到你的問題,你的路徑變量的值。 – Hackerman

+2

當你在'string verify'中放置一個斷點時,你看到了什麼?在調試器中用F10鍵遍歷代碼,在觀察窗口中檢查每個變量(或者將鼠標懸停在它上面)?你甚至可以選擇'File.Exists(path)'並將鼠標懸停在它上面以查看它返回的內容。 –

+1

[如何在Visual Studio中使用調試器的指導](https://msdn.microsoft.com/en-us/library/mt243867.aspx)。 – mason

回答

0
  1. 請確保文件夾C:\ assets存在,否則您的程序將拋出異​​常。
  2. File.Create(path)會創建文件,但是當你調用File.WriteAllText(path,name)時,它會拋出一個異常,因爲你的文件可能仍然會被打開。因此你應該刪除File.Create(path),File.WriteAllText(path,name);將創建一個文件,然後寫入它後關閉它。
0

我會從您的代碼中刪除File.Create(path);,看看會發生什麼。 File.WriteAllText(path, name);將會爲你創建這個文件,所以這是不必要的,而且你可能會得到一個IO異常,它被吞噬掉在你的代碼中的其他地方,這會把你從氣味中拋出。