ファイル システムなどの階層データ構造を扱う場合、多くの場合、特定のパスの性質を判断する必要があります。 – ファイルを表すかディレクトリを表すか。 .NET では、このタスクにはいくつかのアプローチがあります。
従来の方法
一般的なアプローチの 1 つは、Directory.GetDirectories メソッドを利用することです。質問に示されているように、このメソッドは指定されたパスのサブディレクトリを一覧表示します。パスがディレクトリを表す場合、メソッドはそのディレクトリの性質を示すサブフォルダーのリストを返します。逆に、ファイル パスの場合は例外が発生します。このメソッドは機能しますが、例外を使用するとパフォーマンスのオーバーヘッドが発生する可能性があります。
より効率的なアプローチ
代替のより効率的なアプローチには、File.GetAttributes メソッドの利用が含まれます。このメソッドは、指定されたパスに関連付けられた属性を取得します。返された FileAttributes 列挙値を調べることで、パスがディレクトリまたはファイルに対応するかどうかを判断できます。
// Get the file attributes for the target path FileAttributes attr = File.GetAttributes(strFilePath); // Determine the type based on the attributes if ((attr & FileAttributes.Directory) == FileAttributes.Directory) { // It's a directory } else { // It's a file }
.NET 4.0 の拡張機能
In .NET 4.0 以降では、FileAttributes.HasFlag を使用してコードをさらに簡素化できます。メソッド:
if (attr.HasFlag(FileAttributes.Directory)) { // It's a directory } else { // It's a file }
この最適化されたアプローチは、パスのタイプを決定する信頼性が高く効率的な手段を提供し、アプリケーションでファイルとディレクトリの操作をシームレスに処理できるようにします。
以上がファイルとディレクトリ: .NET でこれらを効率的に区別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。