Как вернуться на шаг назад от пути файла
P.S: Случился дичайший затуп(
Вот у меня есть путь к файлу:
E:\Office Installers\ProPlus2021Retail\Office\Data\User File
Путь к файлам получаю через Directory.EnumerateFiles
Я хочу получить от файла вернуться назад до папки Data, проверить файл "Installer", если его нет, то вернуться ещё на шаг назад.
Или как вообще можно сделать шаг или 2 шага назад, я так полагаю через сплит можно сделать Split("/") но что-то не понимаю уже ничего.
foreach (var files in Directory.EnumerateFiles("paths array", "User File", SearchOption.AllDirectories))
{
Console.WriteLine(files);
}
Ответы (1 шт):
Автор решения: 4per
→ Ссылка
Не нужно парсить и конкатенировать пути руками. Для этого есть ряд статических и обычных классов в пространстве имён System.IO.
В вашем случае или сразу заюзать Directory.GetParent
string inputPath = @"E:\Office Installers\ProPlus2021Retail\Office\Data\User File";
Console.WriteLine(System.IO.Directory.GetParent(inputPath));
//OUTPUT:
E:\Office Installers\ProPlus2021Retail\Office\Data
Либо явно создать объект DirectoryInfo
var dir = new DirectoryInfo(inputPath);
Console.WriteLine(dir?.FullName);
while (dir != null)
{
dir = dir.Parent;
Console.WriteLine(dir?.FullName ?? "Reached the root directory...");
}
//OUTPUT:
E:\Office Installers\ProPlus2021Retail\Office\Data\User File
E:\Office Installers\ProPlus2021Retail\Office\Data
E:\Office Installers\ProPlus2021Retail\Office
E:\Office Installers\ProPlus2021Retail
E:\Office Installers
E:\
Reached the root directory...