2012-01-05 2 views
0

Я хочу создать файл с датой..net NotSupportedException при создании файла с датой

DateTime time_now = DateTime::UtcNow; 
String^ time_str = time_now.UtcNow.ToString(); 
String^ strPath = "C:\\Users\\Documents\\VS\\MyProject\\" + fileName + time_str + ".prc"; 

FileStream^ fs = File::Create(strPath); // in this line I get notSupportedException 

отлаживать код и имя файла: myfile05.01.2012 12: 37: 1222.prc

Я думаю, что probles является ":" Как я могу это исправить?

ответ

3

Лично я бы заменил «.». и с "_" ;

strPath.Replace(".","_").Replace(":","_");

+0

Проблема только в символах ':', '.' является допустимым символом для имени файла. Последнее не нужно заменять. –

+0

@ DevendraD.Chavan true, я также предлагаю потерять "." тоже, поскольку имя файла имеет суффикс, а соглашение - это «.» ограничивает суффикс. –

+0

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

2

Заменить каждый неверный символ с подчеркиванием:

private string GetValidPath(string _Path) 
     { 
      String goodPath = _Path; 
      foreach (char letter in System.IO.Path.GetInvalidPathChars()) 
      { 
       goodPath = goodPath.Replace(letter, '_'); 
      } 
      return goodPath; 
     } 

Если вы программируете в C++/CLI, вы можете, надеюсь, порт это C# код.

Смежные вопросы