2014-09-30 4 views
0

Я создал небольшую программу, которая создает сжатые резервные копии. См. Править ниже.Путь к файлу содержит недопустимые символы

Пути файлов имеют двоеточие в них, которое генерирует NotSupportedException, когда я пытаюсь запустить его.
Если у меня есть следующий путь:
C:\Testing facility\SampleDirectory
Что я могу заменить : с того, что моя программа будет обрабатывать FilePath, но все-таки найти правильный каталог/файл?

В примере, показанном в this MSDN article, ничего не говорится о проблемах с двоеточиями или любыми другими незаконными персонажами, я делаю что-то неправильно?

Мой каталог кода сжатия выглядит следующим образом:

private void CompressDirectory() 
{ 
    zipPath = backupPath + DateTime.Now.ToString().Replace(':', '-') + ")."; 

    try 
    { 
     ZipFile.CreateFromDirectory(sourcePath, zipPath, CompressionLevel.Optimal, true); 
     getresultmessage(); 
    } 
    catch (IOException v) 
    { 
     errMsg = "Failed trying to start compression. \n" + v.ToString(); 
    } 
} 

Edit:
После еще некоторые отладки, я понял, что в настоящее время filestrings дважды прилагается к SOEM причине. Под этим я имею в виду, что sourcePath получил значение:
"C:\\Testing facility\\SampleDirectory"
ans похожее событие произошло с резервным путем.

Почему это, и что я могу сделать, чтобы исправить это?

+0

Почему ''). "? – Ofiris

+0

Чтобы исправить это, вам нужно поделиться своим кодом для создания sourcePath и backupPath. – prem

ответ

1

попробовать это может хорошо работать для вас

@ "C: \ тестирование объекта \ SampleDirectory"

+0

Я не могу этого сделать, потому что пути к файлам заполняются строками из текстового поля. – Wolfish

+0

doest, что текстовое поле содержит нечто иное, чем путь к файлу, и есть ли несколько путей или один путь? –

1

Заменить:

DateTime.Now.ToString().Replace(':', '-')

с:

DateTime.Now.ToString("yyyy-MM-dd-HH-mm")

Удалить ")."

As для Edit - Вы видите \\, потому что \ является escaped.

+1

+1 для этого, так как он также позволяет легко сортировать файлы в каталоге по дате – DavidG

+0

Выполнено, не останавливает ошибку. – Wolfish

+0

В какой строке возникает ошибка? – Ofiris

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