2012-04-27 2 views
0

Я создаю скрипт, который находит, что вторая папка в пути, как бы я это сделал?Больше путей и т. Д.

Dira
DIRB/C ---- Мне нужно DIRB
indirB - dirD/E
indirE - Файл

Мне нужно найти имя папки, в 2-го уровня, что пути к файл (я обозначил его звездочками).

как бы я идти о поиске этого

+0

Это для моего файла копия/сортировка. – shred1894

+3

Я понятия не имею, что вы только что набрали. – yamen

+2

вопрос сложнее, чем нужно. У вас вопрос, у меня есть путь 'c: \ a \ b \ c', как я могу получить' b'? – Reniuz

ответ

2

Как об этом расширении:

public static class StringExtensions 
{ 
    public static String PathLevel(this String path, int level) 
    { 
     if (path == null) throw new ArgumentException("Path must not be null", "path"); 
     if (level < 0) throw new ArgumentException("Level must be >= 0", "level"); 

     var levels = path.Split(Path.DirectorySeparatorChar); 
     return levels.Length > level ? levels[level] : null; 
    } 
} 

испытания:

var path = @"C:\Temp\Level2\Level3\Level4\File.txt"; 
var secondLevel = path.PathLevel(2); // => "Level2" 

Он разбивает путь по DirectorySeparatorChar к String[]. Вам нужен второй уровень (третий элемент), это возвращает «Level2». Обратите внимание, что первый элемент равен C:.

+0

. Я попробую это. – shred1894

+0

Если 'level.Length' -' 2', этот код будет вызывать исключение из привязки. – SuperOli

+0

Я только использовал C# в течение 3 дней, никогда не использовал его раньше. – shred1894

Смежные вопросы