Как вернуться на шаг назад от пути файла

Рейтинг: 0Ответов: 1Опубликовано: 02.03.2023

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);
}

Ответы

▲ 5Принят

Не нужно парсить и конкатенировать пути руками. Для этого есть ряд статических и обычных классов в пространстве имён 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...