Если у меня есть строка "abc.txt"
, есть ли быстрый способ получить подстроку, которая представляет собой просто "abc"
?
Я не могу выполнить fileName.IndexOf ('.')
, потому что имя файла может быть "abc.123.txt "
или что-то в этом роде, и я, очевидно, просто хочу избавиться от расширения (например, " abc.123 "
).
Метод Path.GetFileNameWithoutExtension
дает вам имя файла, которое вы передаете в качестве аргумента без расширения, как должно быть очевидно из имени.
Для этой цели во фреймворке есть метод, который сохранит полный путь, кроме расширения.
Система .IO.Path.ChangeExtension (path, null);
Если требуется только имя файла, используйте
System.IO .Path.GetFileNameWithoutExtension (путь);
Там метод в структуре для этой цели, который сохранит полный путь, кроме расширения.
System.IO.Path.ChangeExtension (path, null);
Если требуется только имя файла, используйте
System.IO.Path.GetFileNameWithoutExtension (path);
Вы можете использовать
string extension = System.IO. Path.GetExtension (filename);
А затем удалите расширение вручную:
string result = filename.Substring (0, filename.Length - extension.Length);
Вы можете использовать
string extension = System.IO.Path.GetExtension (filename);
А затем удалите расширение вручную:
string result = filename.Substring (0, filename.Length - extension.Length);
String.LastInd exOf будет работать.
string fileName = "abc.123.txt"; int fileExtPos = fileName.LastIndexOf ("."); if (fileExtPos> = 0) fileName = fileName.Substring (0, fileExtPos);
String.LastIndexOf будет работать.
string fileName = "abc.123.txt"; int fileExtPos = fileName.LastIndexOf ("."); if (fileExtPos> = 0) fileName = fileName.Substring (0, fileExtPos);
Если вы хотите создать полный путь без расширения, вы можете сделать что-то вроде этого:
Path.Combine (Path.GetDirectoryName (fullPath), Path.GetFileNameWithoutExtension (fullPath))
, но я ищу более простой способ сделать это. У кого-нибудь есть идеи?
Если вы хотите создать полный путь без расширения, вы можете сделать что-то вроде этого:
Path.Combine (Path.GetDirectoryName (fullPath), Path.GetFileNameWithoutExtension (fullPath))
, но я ищу более простой способ сделать это. Есть ли у кого-нибудь идеи?
Я использовал приведенный ниже, без кода
string fileName = "C: file.docx"; MessageBox.Show (Path.Combine (Path.GetDirectoryName (fileName), Path.GetFileNameWithoutExtension (fileName)));
Результатом будет
C:file
Я использовал приведенную ниже строку без кода
string fileName = "C: file.docx"; MessageBox.Show (Path.Combine (Path.GetDirectoryName (fileName), Path.GetFileNameWithoutExtension (fileName)));
Вывод будет
C: файл
, если вы хотите использовать операцию String, вы можете использовать функцию lastIndexOf () который ищет последнее вхождение символа или подстроки. В Java есть множество строковых функций.
если вы хотите использовать операцию String, вы можете использовать функцию lastIndexOf (), который ищет последнее вхождение символа или подстроки. В Java есть множество строковых функций.
Возможно, вы не спрашиваете API UWP. Но в UWP file.DisplayName
— это имя без расширений. Надеюсь пригодится другим.
Возможно, вы не спрашиваете API UWP. Но в UWP file.DisplayName
— это имя без расширений. Надеюсь пригодится другим.
Я знаю, что это старый вопрос, а Path.GetFileNameWithoutExtension
— это лучший и, возможно, более чистый вариант. Но лично я добавил эти два метода в свой проект и хотел ими поделиться. Для этого требуется C # 8.0 из-за использования диапазонов и индексов.
общедоступная статическая строка RemoveExtension (этот строковый файл) => ReplaceExtension (file, null); общедоступная статическая строка ReplaceExtension (это строковый файл, расширение строки) {var split = file.Split ('.'); if (string.IsNullOrEmpty (extension)) return string.Join (".", split [.. ^ 1]); разделить [^ 1] = расширение; return string.Join (".", split);}
Я знаю, что это старый вопрос и Путь. GetFileNameWithoutExtension
— лучший и, возможно, более чистый вариант. Но лично я добавил эти два метода в свой проект и хотел ими поделиться. Для этого требуется C # 8.0 из-за использования диапазонов и индексов.
общедоступная статическая строка RemoveExtension (этот строковый файл) => ReplaceExtension (file, null); общедоступная статическая строка ReplaceExtension (это строковый файл, расширение строки) {var split = file.Split ('.'); if (string.IsNullOrEmpty (extension)) return string.Join (".", split [.. ^ 1]); разделить [^ 1] = расширение; return string.Join (".", split);}
//////Получить расширение из заданного имени файла/// /// из заданного имени файла, например: abc.123.txt /// расширение, например: txt общедоступная статическая строка GetFileExtension (эта строка имя_файла) {строка ext = string.Empty; int fileExtPos = имя_файла.LastIndexOf (".", StringComparison.Ordinal); if (fileExtPos> = 0) ext = fileName.Substring (fileExtPos, fileName.Length - fileExtPos); вернуть доб; }
//////Получить расширение из заданного имени файла/// /// данное имя файла, например: abc.123.txt /// расширение, то есть: txt общедоступная статическая строка GetFileExtension (это строка имя_файла) {строка ext = строка.Empty; int fileExtPos = имя файла.LastIndexOf (".", StringComparison.Ordinal); if (fileExtPos> = 0) ext = fileName.Substring (fileExtPos, fileName.Length - fileExtPos); вернуть доб; }