У меня есть коллекция файлов с полным набором путей (root/test/thing1/thing2/file.txt). Я хочу, чтобы foreach
по этой коллекции и отбросил файл в место, определенное в пути, однако, если некоторые каталоги не существуют, я хочу, чтобы они были созданы автоматически. Моя программа имеет по умолчанию «местоположение перехода», например z:/
. «Место падения» начинается с пустого места, поэтому в моем примере выше первый элемент должен автоматически создавать каталоги, необходимые для создания z:/root/test/thing1/thing2/file.txt
. Как я могу это сделать?Автоматически создавать каталоги с длинными путями
10
A
ответ
16
foreach (var relativePath in files.Keys)
{
var fullPath = Path.Combine(defaultLocation, relativePath);
var directory = Path.GetDirectoryName(fullPath);
Directory.CreateDirectory(directory);
saveFile(fullPath, files[relativePath]);
}
где находятся файлы IDictionary<string, object>
.
10
string somepath = @"z:/root/test/thing1/thing2/file.txt";
System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName((somepath));
3
Проверить IO namespace (Directory, Path), я думаю, что они помогут вам
using System.IO
Затем проверьте его ..
string fileName [email protected]"d:/root/test/thing1/thing2/file.txt";
string directory = Path.GetDirectoryName(fileName);
if (!Directory.Exists(directory))
Directory.CreateDirectory(directory);
7
Directory.CreateDirectory("/root/...")
Создает все каталоги и подкаталоги указанный путь
1
string filename = "c:\\temp\\wibble\\wobble\\file.txt";
string dir = Path.GetDirectoryName(filename);
if (!Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
File.Create(filename);
с подходящим исключением обработка, конечно.
0
Я нашел, что установка «местоположение по умолчанию» в начале выполнения была полезной и уменьшала бит избыточного кода (например, Path.Combine(defaultLocation, relativePath)
).
Пример:
var defaultLocation = "z:/";
Directory.SetCurrentDirectory(defaultLocation);
Directory.SetCurrentDirectory(AppContext.BaseDirectory);
Смежные вопросы
- 1. Реляционная конструкция базы данных: как создавать отношения с длинными путями?
- 2. Как создавать каталоги автоматически с использованием потока
- 3. _wsplitpath_s() альтернатива использованию с длинными путями
- 4. Разрешить Maven автоматически создавать каталоги в Ubuntu
- 5. Как управлять длинными путями в Bash?
- 6. Как обращаться с файлом :: Найти в Windows с длинными путями
- 7. Улучшение производительности на картах Google для рисования длинными путями
- 8. Ansible создавать каталоги из списка
- 9. Chef создавать рекурсивные каталоги с несколькими переменных
- 10. Как включить каталоги с относительными путями проектов в CMake?
- 11. Проблема с длинными длинными вычислениями
- 12. Рекурсивных создавать каталоги в питоне, пропуская существующие каталоги
- 13. Проблема с PHP-путями
- 14. автоматически создавать родственную модель
- 15. Автоматически создавать Email
- 16. автоматически заполняя каталоги при вводе
- 17. Автоматически создавать страницы
- 18. Автоматически создавать соответствующую модель
- 19. Как автоматически создавать переменные?
- 20. Автоматически создавать сценарии Gatling
- 21. Автоматически создавать резюме TextField
- 22. Автоматически создавать экземпляр наследств
- 23. Sharepoint: автоматически создавать подпапки
- 24. Автоматически создавать действительные ссылки
- 25. NSFileManager createDirectoryAtPath: withIntermediateDirectories: Не создавать каталоги или создавать ошибки
- 26. Автоматически создавать объект
- 27. Автоматически создавать требования. Txt
- 28. Автоматически создавать .OBJDIR подкаталоги
- 29. Автоматически создавать App.Config
- 30. Точность расстояния между двумя длинными длинными длинными
Согласовано, нет необходимости проверять, если каталог существует, как он делает это внутренне. – Squirrel