2015-07-01 3 views
2

В моем приложении Windows Forms C# у меня есть данные журнала. Я сохраняю их в текстовом файле , но я хочу назвать этот файл некоторым описанием с текущей датой/временем. Но во время отладки коды я получил эту ошибку:Создать имя файла с текущей датой

The given path's format is not supported.

вот мой код:

 string dateAndTime = " '' " + DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString() + " '' "; 
     string sPath = @"C:/Desktop/Logs - "+ dateAndTime + ".txt"; 
     int type = 0; 
     using (StreamWriter sw = File.CreateText(sPath)) 
     { 
      int J = 0; 
      for (int i = 0; i < logsList.Count; i++) 
      { 
       if (logsList[i + 3] == "IN") 
       { 
        type = 3; 
       } 
       else if (logsList[i + 3] == "OUT") 
       { 
        type = 4; 
       } 

       sw.WriteLine(logsList[i] + "   " + logsList[i + 1] + "  " + logsList[i + 2] + "  " + logsList[i + 3] + "  " + logsList[i + 4]); 
       i += 4; 
      } 
     } 
+0

Какой путь именно? –

+0

строка sPath = @ "C: \ Users \ Ziad.Mansour \ Desktop \ Logs -" + DeviceID.ToString() + dateAndTime + ".txt"; –

ответ

3

Используйте это для формата, без косых черт

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss"); 

ToShortDateString использует текущий язык, который будет приводят к различным результатам в зависимости от машины, где выполняется код

0

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

т.е: ваше имя файла содержит / и :, которые представляют собой специальные символы, которые не поддерживаются операционной системой, чтобы имя файла.

Вот почему вы получаете ошибку говоря

The given path's format is not supported.

File Name is wrong

Also i would suggest you to do not use the special chars like this " '' " . Its not required there.

Используйте этот код, приведенный ниже, если вы хотите такого рода имен файлов форматов C:/Desktop/Logs - 7-1-2015-3-45 PM.txt.

Пример кода для Валида Имя файла:

string dateAndTime = DateTime.Now.ToShortDateString() + "-" + DateTime.Now.ToShortTimeString(); 
dateAndTime = dateAndTime.Replace('/', '-'); 
dateAndTime = dateAndTime.Replace(':', '-');