2017-02-23 81 views
1

我想填寫窗體的數據,以優秀。代碼的最後,我給的驗證,所以如果文件名的特定位置的存在,不會再保存C# - interop excel

string savingNewForm = "C:\\temp\\" + temp; 
      if (File.Exists(savingNewForm)) 
      { 
       MessageBox.Show("File already exist!"); 
       oBook.Close(); 
       oApp.Quit(); 
      } 
      else 
      { 
       oBook.SaveAs(savingNewForm); 
       oBook.Close(); 
       oApp.Quit(); 
       MessageBox.Show("Your file saved"); 
      } 

但是當用戶保存相同的文件名給它的錯誤。

我認爲主要的問題在if (File.Exists(savingNewForm))因爲它不檢查文件名是否存在,而是去else,並給出一個彈出excel問我是否要替換或不。

+2

您的問題是什麼? –

+0

你可以告訴我你的 –

+0

你說「它給錯誤」 - 什麼錯誤?什麼線? – Enigmativity

回答

-1

雖然我還沒有與您的Excel工作庫,建議你去嘗試解決方法:

  • 保存到另一個文件;
  • 刪除目標;
  • 將保存的文件移動到目標文件名。

刪除文件時的錯誤將更有助於提供任何信息。

0

temp的值是多少?

EXISTS的不應該用於路徑驗證方法,這個方法僅僅 如果文件檢查:如果文件名包含無效字符或過長等

MSDN有可能是一個問題在路徑中指定存在。通過一個無效的 路徑到Exists返回false

如果路徑描述目錄,則此方法返回false

Exists方法返回false如果在嘗試確定指定文件是否存在時發生任何錯誤。

如果該目錄不存在,或者用戶沒有權限讀取文件(可能被鎖定),則File.Exists()將返回false。

+0

臨時值是用戶在文本框上輸入的名字和姓氏,所以它會變成文件名 –

0

如果這是文件存在的問題,請參閱Softerware的答案。如果您希望Excel不要求用戶覆蓋,請嘗試:

oApp.DisplayAlerts = false;