это мой пример пути E:\test\img\sig.jpg Я хочу получить E:\test\img для создания каталога, я пытаюсь разделить, но это будет img, поэтому я пробую функцию Directory.CreateDirectory, и путь E:\test\img\sig.jpg\ скажите мне идеи?
Как получить родительский каталог по пути С#?
- Не могли бы вы отредактировать свой вопрос, чтобы показать нам, что вы пробовали, тогда мы сможем помочь. 28.06.2016
- Возможный дубликат Как найти родительский каталог в C#?< /а> 28.06.2016
- Просто погуглите, прежде чем задавать вопрос 28.06.2016
- может быть, вы должны изменить свой заголовок. В вашем примере родительский каталог будет:
E:\test28.06.2016
Ответы:
Рекомендуемый способ — использовать Path.GetDirectoryName():
string file = @"E:\test\img\sig.jpg";
string path = Path.GetDirectoryName(file); // results in @"E:\test\img"
Используйте Path.GetDirectoryName. который возвращает информацию о каталоге для указанной строки пути.
string directoryName = Path.GetDirectoryName(filePath);
Класс Path содержит множество полезных методов для обработки путей, которые более надежны, чем ручное манипулирование строками:
var directoryComponent = Path.GetDirectoryName(@"E:\test\img\sig.jpg");
// yields `E:\test\img`
Для полноты я хотел бы упомянуть Path.Combine, который делает обратное:
var dirAndFile = Path.Combine(@"E:\test\img", "sig.jpg");
// no more checking for trailing slashes, hooray!
Чтобы создать каталог, вы можете использовать Directory.Create. Обратите внимание, что нет необходимости сначала проверять, существует ли каталог.
Вы можете попробовать этот код, чтобы найти имя каталога. System.IO.FileInfo fi = new System.IO.FileInfo(@"E:\test\img\sig.jpg"); строка имя_каталога = fi.DirectoryName;
и создать каталог Directory.CreateDirectory(dirname);
Другое решение может быть:
FileInfo f = new FileInfo(@"E:\test\img\sig.jpg");
if (f.Exists)
{
string dirName= f.DirectoryName;
}