Прямо сейчас я получаю файл как строку, и мне нужно перебирать все известные ex. чтобы захватить его расширение файла.
Как определить расширение файла во время выполнения с помощью С# без итерации для ожидаемого?
Используйте метод Path.GetExtension, предоставляемый инфраструктурой.
Расширение указанного пути (включая период “.”), Или null, или String.Empty. Если путь равен null, GetExtension возвращает значение null. Если в пути нет информации о расширении, GetExtension возвращает String.Empty.
string extension = Path.GetExtension(@"C:\mydir\file.exe");
Вы получите .exe
Вы пытались использовать что-то вроде
Расширение указанного пути (включая период “.”), Или null, или String.Empty. Если путь равен null, GetExtension возвращает значение null. Если в пути нет информации о расширении, GetExtension возвращает String.Empty.
Вы можете использовать Path.GetExtension()
.
Расширение указанного пути (включая период “.”), Или
null
, илиString.Empty
. Если путь равенnull
,GetExtension
возвращает значениеnull
. Если в пути нет информации о расширении,GetExtension
возвращаетString.Empty
.
string p = @"C:\Users\Sam\Documents\Test.txt";
string e = Path.GetExtension(p);
if (e == ".txt")
{
Console.WriteLine(e);
}
Path.GetExtension
проверяет весь путь для недопустимых символов. Этот шаг является избыточным, если вы уже знаете, что ваш путь действителен, например, когда вы получили его из Directory.GetFile
. Он ищет разделитель char. AltDirectorySeparatorChar
реализации для DirectorySeparatorChar
, AltDirectorySeparatorChar
и VolumeSeparatorChar
.
Использовать Path.GetExtension
:
string extension = Path.GetExtension(@"C:\myfile.txt");
Или, вы имели в виду, что хотите найти файл с заданным базовым именем и любым расширением? Вы можете использовать Directory.GetFiles
:
string[] files = Directory.GetFiles(@"C:\", "myfile.*")
Альтернативный способ найти это.
var file = new FileInfo("myPath");
var extension = file.Extension;
Так, например, если мы хотим взять все txt файлы из каталога, мы можем сделать вот так:
var directory = new DirectoryInfo("myFolder");
var filesWithTxtExtension = directory.GetFiles().Where(file => file.Extension == ".txt");
Вы можете использовать класс System.IO.FileInfo.
Он имеет свойство под названием Extension, которое дает строку, содержащую часть расширения имени файла.
FileInfo file = new FileInfo("myfile.txt")
string fileExtension = file.Extension;
Используйте Path.GetExtension(path)
это может быть полезно.
string getFileExtension (string Path)
{
return Path.GetExtension(Path);
}
string path = Path.GetExtension(filePath);