.NET:ビットマスクよりもディレクトリをテストする簡単な方法はありますか?

.net directory vb.net

ビットマスクを使用するよりもファイルシステム項目がディレクトリかどうかをテストする簡単な方法はありますか

私は自分のアプリケーションの1つにこのコードを持っています(2行目は実際にはfolderItemをループしていますが、単純にするために最初の要素を想定しています)

暗黙のfolderItemsとしてString()= Directory.GetFileSystemEntries(aFolder)暗黙のsomeDirItemとしてString = folderItems(0)薄暗いfInfoとしてSystem.IO.FileInfo =新しいSystem.IO.FileInfo(someDirItem)薄暗いisDirectoryとしてBoolean =(CInt(fInfo。属性)およびCInt(FileAttributes.Directory))> 0

(FileAttributes.Directoryは16です)。

これはうまくいきますが、1000(基数2)とビット単位のANDを使うよりも簡単な方法はありますか?

  1  0


ベストアンサー

どうですか?

System.IO.Directory.Exists(fullPath)

fullPathがディレクトリの場合はtrueを返します。

11


あなたは `Directory.Exists(path)`を使うことができますか?

ダン

3


ビットごとのフラグをテストする列挙型の拡張メソッドを作成できます。 このようなもの:

public static bool(このSystem.Enum型、T値){try {return(((int)(object)型)

それならあなたはただ電話をかけるでしょう:

Bool isDirectory = fInfo.Attributes.Has(FileAttributes.Directory))

申し訳ありませんが、これはC#ですが、変換するのは難しいことではありません。ジェネリックのためのVB構文がわからないのです。 誰でも、VB翻訳を編集して追加してください。

2


薄暗いfolderItemsとしてString()= Directory.GetFileSystemEntries(aFolder)薄暗いsomeDirItemとしてString = folderItems(0)薄暗いisDirectoryとしてBoolean = System.IO.Directory.Exist(someDirItem)

1


比較を実行するときに `CInt`を使う必要はありません。

ブール値としての薄暗いisDirectory = _(fInfo.Attributes And FileAttributes.Directory)= FileAttributes.Directory

1


ビットごとの比較は難しいですか? このようにしたくない場合は、ブール値のデータ構造を公開するユーティリティクラスを作成し、プロジェクトに移植するだけです。

0


タイトルとURLをコピーしました