2010-10-11 6 views
7

Если у меня есть путь к файлу, например «C: \ Мои документы \ Images \ Image1.png», как получить имя родительской папки файла «Image1.png»? В этом случае «Изображения», но это всего лишь образец. Я просмотрел System.IO.Path, и там, кажется, ничего нет. Возможно, я не обращу внимания на это, но я понятия не имею, где это будет.Получение имени папки с пути

ответ

9

Как это:

Path.GetFileName(Path.GetDirectoryName(something)) 
+0

эффектные, я не знаю, что вы могли бы решить эту проблему, как это , +1 – AndyPerfect

+0

Отлично, это самое простое. Thanx! – Stan

2

Попробуйте это:

var directoryFullPath = Path.GetDirectoryName(@"C:\My Documents\Images\Image1.png"); 
var directoryName = Path.GetFileName(directoryFullPath); \\ Images 
4

Использование System.IO.FileInfo.

string fl = "C:\My Documents\Images\Image1.png"; 
System.IO.FileInfo fi = new System.IO.FileInfo(fl); 
string owningDirectory = fi.Directory.Name; 
+0

Это свойство возвращает полный путь к каталогу, который не то, что он хочет. – SLaks

+0

Спасибо, что указали, что вне - обновлено. FileInfo.Directory.Name вернет желаемый результат. – code4life

1

Следующий метод извлечения всех имен каталогов и имя файла

Dim path As String = "C:\My Documents\Images\Image1.png" 
Dim list As String() = path.Split("\") 
Console.WriteLine(list.ElementAt(list.Count - 2)) 
+0

Это излишне медленно. – SLaks

+0

хорошо, заголовок намекает на возможность получения нескольких имен папок - не был уверен, может ли искатель потребовать больше, чем только один родительский каталог, так почему бы и нет? – AndyPerfect

+0

Вы также должны разделить на альтернативный разделитель пути (/ для Windows) – Joe

4

Создать экземпляр

System.IO.FileInfo f1 = new FileInfo("filepath"); 
        DirectoryInfo dir=f1.Directory; 
        string dirName = dir.Name; 
        string fullDirPath = dir.FullName; 
Смежные вопросы