| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Функция File.Move(f1, f2) |
| Автор: Uvs 30.6.2014, 12:15 |
| Добрый день. Не работает функция File.Move(f1, f2). В директориях файлов есть русские символы и пробелы. Для корректной обработки - заключаю пути файлов в двойные кавычки. try { string[] dbfFiles = Directory.GetFiles(Path.GetDirectoryName(fileName), "*.dbf"); foreach (string dbf_file in dbfFiles) { string clearFName = Path.GetFileName(dbf_file); if (dict.ContainsKey(clearFName)) dict[clearFName]++; else dict.Add(clearFName, 1); string file_dest = destFolder + "\\" + clearFName.Substring(0, 3) + "_" + dict[clearFName].ToString() + ".dbf"; File.Move(String.Format("\"{0}\"", file_src), String.Format("\"{0}\"", file_dest)); } } catch (ArgumentNullException nullExcept) { throw new ArgumentNullException(nullExcept.Message); } catch (ArgumentException argExcept) { throw new ArgumentException(argExcept.Message); } catch (UnauthorizedAccessException unAccess) { throw new UnauthorizedAccessException(unAccess.Message); } catch (PathTooLongException tolongException) { throw new PathTooLongException(tolongException.Message); } catch (DirectoryNotFoundException notFoundException) { throw new DirectoryNotFoundException(notFoundException.Message); } catch (NotSupportedException notSupException) { throw new NotSupportedException(notSupException.Message); } catch (IOException ioExcept) { throw new IOException(ioExcept.Message); } В чем тут дело? Пользователю, запускающему программу дал полные права. |
| Автор: Uvs 30.6.2014, 12:35 |
| не происходит никакого Exception и кода ошибки не выдается |
| Автор: mihryak 30.6.2014, 14:07 |
| 1. Ковычки не нужны 2. Для склейки частей пути используй Path.Combine 3. Для получения имени файла без расширения используй Path.GetFileNameWithoutExtension 4. Что такое file_src? Почему не меняется в цикле? Ты хочешь один и тот же файл размножить? 5. Никогда не видел такой бессмысленной обработки исключений - вместо того, что ты делайешь сейчас, гораздо уместней было бы вообще ничего не ловить 6. Используй подсветку синтаксиса для вставки кода в сообщение |