Удалить часть полного имени каталога?

У меня есть список имен файлов с полным путем, из которого мне нужно удалить имя файла и часть пути к файлу, учитывая имеющийся у меня список фильтров.

Path.GetDirectoryName(file)

Выполняет часть работы, но мне было интересно, есть ли простой способ фильтровать пути с помощью. Net 2.0, чтобы удалить его часть.

Например:

, если у меня есть путь + имя файла , равный C: \ мои документы \ моя папка \ другая моя папка \ имя файла. exe , и все, что мне нужно, это то, что указано выше моя папка \ означает, что мне нужно извлечь только мою другую папку из нее.

ОБНОВЛЕНИЕ:

Список фильтров представляет собой текстовое поле с именами папок, разделенными , , поэтому у меня есть только частичные имена на нем, как в приведенном выше примере, фильтр здесь будет моя папка

Текущее решение на основе кода Роба:

string relativeFolder = null;
string file = @"C:\foo\bar\magic\bar.txt";
string folder = Path.GetDirectoryName(file);
string[] paths = folder.Split(Path.DirectorySeparatorChar);
string[] filterArray = iFilter.Text.Split(',');

foreach (string filter in filterArray)
{
    int startAfter = Array.IndexOf(paths, filter) + 1;
    if (startAfter > 0)
    {
        relativeFolder = string.Join(Path.DirectorySeparatorChar.ToString(), paths, startAfter, paths.Length - startAfter);
        break;
    }
}
5
задан Prix 12 March 2011 в 19:35
поделиться