2010-11-18 3 views
0

У меня есть имя файла с именем ABCD , если я использую Path.GetFileNameWithoutExtension, я получаю азбука, я задаюсь вопросом, как получить часть толькопуть процесса вопрос

+0

Вам нужно, по крайней мере, дать нам пример. – Ruel

+0

Конечно, это поведение имеет смысл, потому что 'd' - это единственное, что Windows интерпретирует как расширение файла. То, что вы делаете, расходится с предполагаемой функцией 'GetFileNameWithoutExtension' и может быть лучше реализовано как простое разделение строки в каждый период. –

ответ

1

Вариант 1:

string p = Path.GFNWE (Path.GFNWE (Path.GFNWE (original))); 

Вариант 2:

string p = original; 
int i; 
while ((i = p.LastIndexOf ('.')) > 0) { 
     p = Path.GetFileNameWithoutExtension (p); 
} 

Вариант 3: (осторожно, чувствительны к регистру)

if (original.EndsWith (".b.c.d")) 
     original = original.Substring (0, original.Length - ".b.c.d".Length); 
1

Ну вы могли бы попробовать что-то вроде

Path.GetFileName("a.b.c.d").Split('.')[0] 
1
string fileName = "a.b.c.d"; 
string whatYouWant = fileName.Substring(0, fileName.IndexOf('.')); 
+2

Выдает, если имя_файла не содержит точек. – Gonzalo

2

Вот один из способов:

var path = "asdf.bsdf.csdf"; 

while(Path.HasExtension(path)) 
    path = Path.GetFileNameWithoutExtension(path); 

Вот еще:

path = "asdf.bsdf.csdf"; 
path = path.Substring(0, path.IndexOf('.')); 

Обратите внимание, что последнее потребовало бы маленький модификатор если path были на самом деле путём, а не только именем файла, тогда как первым не было бы.

Есть много других способов сделать это - это всего лишь два примера.

+1

Первый круто ..... –

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