2017-02-23 93 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 и дает всплывающее окно с вопросом, хочу ли я заменить или нет.

+2

На ваш вопрос? –

+0

Можете ли вы показать мне свой –

+0

Вы говорите «дайте ошибку» - какая ошибка? Какая линия? – Enigmativity

ответ

-1

Хотя я не работал с библиотекой первенствовать, предлагаю вам попробовать обходной путь:

  • сохранить в другой файл;
  • удалить цель;
  • переместить сохраненный файл в целевое имя файла.

Ошибка при удалении файлов будет более информативной в любом случае.

0

Какая ценность temp? Там может быть проблема, если имя файла содержит недопустимые символы или слишком долго, и т.д.

MSDN От:

Exists метод не следует использовать для проверки пути, этот метод просто проверяет, является ли файл указанный в пути существует. Передача недопустимого пути к Exists возвращает false.

Если путь описывает каталог, этот метод возвращает false.

Метод Exists возвращает false при возникновении ошибки при попытке определить, существует ли указанный файл.

Если каталог не существует или у пользователя нет разрешения на чтение файла (возможно, он заблокирован), то File.Exists() вернет false.

+0

temp value - это имя и фамилия, которые пользователь вводит в текстовое поле, поэтому он станет именем файла –

0

Если это проблема с существованием файла, см. Ответ Softerware. Если вы хотите, чтобы Excel не запрашивал у пользователя перезапись, попробуйте:

oApp.DisplayAlerts = false; 
Смежные вопросы