現在、ファイルを文字列として取得しており、既知のすべての ex を反復処理する必要があります。ファイル拡張子を取得する場合。
c# を使用して実行時にファイル拡張子を決定するにはどうすればよいですか?
フレームワークが提供する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
パス全体で無効な文字がないかチェックします。sからパスを受け取ったときなど、パスが有効であることがすでにわかっている場合、この手順は冗長ですDirectory.GetFile
。セパレーター文字を探します。DirectorySeparatorChar
実装は、、、AltDirectorySeparatorChar
およびをチェックしVolumeSeparatorChar
ます。
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);
MSDNから-Path.GetExtensionメソッド