2015-07-09 4 views
-1

Моей формы не загружается, если у меня есть этот кусок кода в немC# форма не загружается

private void Form1_Load(object sender, EventArgs e) 
    { 
      // Variables 
     string currentDirectory = Directory.GetCurrentDirectory(); 
     string checkFile = ("mailingdir\\check.txt"); 
     bool newFolder = (File.Exists(checkFile)); 

     if (newFolder) 
      { 
       newFolder = true; 
      } 
     else 
      { 
       newFolder = false; 
       File.Create("mailingdir\\check.txt"); 
      } 

Если я закомментируйте File.Create("mailingdir\\check.txt"); он загружает право.

Я просто экспериментирую, поэтому я думаю, что я начинаю ошибку.

+1

'File.Create' ожидает ** полный путь **. https://msdn.microsoft.com/en-us/library/d62kzs03(v=vs.110).aspx – sab669

+0

Это просто заглушка, я удалю его. Спасибо –

+0

Кроме того, в чем смысл приписывать 'newFolder' значение в' IF/ELSE', когда уже оценивается выражение при объявлении? Это то же самое, что и bool b = true; if (b) b = true; ' – sab669

ответ

1

Код выше работает отлично, пока путь exsists. Замените «mailingdir» точкой, чтобы он ссылался на местоположение приложения. Похоже, нет «mailingdir», где находится exe.

private void Form1_Load(object sender, EventArgs e) 
    { 
     string currentDirectory = Directory.GetCurrentDirectory(); 
     string workingDirectoryPlus1 = (currentDirectory + 1); 
     string checkFile = (".\\check.txt"); 
     bool newFolder = (File.Exists(checkFile)); 

     if (newFolder) 
     { 
      newFolder = true; 
     } 
     else 
     { 
      newFolder = false; 
      File.Create(".\\check.txt"); 
     } 
    } 
+0

Благодарим вас за ответ. Файл «check.txt» должен быть создан в папке mailingdir, хотя это не так, как в коде? РЕДАКТОРА: Не обращайте внимания, вы правы. Спасибо! –

+1

И еще один совет. Вы должны иметь хотя бы один файл со строкой «копировать» внутри «mailingdir» внутри решения, или каталог не будет создан для отладки. –

0

Ваш код предоставляет DirectoryNotFoundException, поскольку mailingdir не существует.

необходимо сначала создать каталог, а затем файл.

Directory.CreateDirectory("mailingdir"); 
File.Create("mailingdir\\check.txt"); 
Смежные вопросы