2009-12-13 6 views

答えて

36

は、ディレクトリがが存在する場合、これは本当にあなたを教えてくれないことを、次の

bool isDir = Directory.Exists(somePath) 

注意してみてください。現在のプロセスが何らかのアクセス手段を持っていた最近の過去のある時点にディレクトリが存在していたことがわかります。ディレクトリにアクセスしようとすると、プロセスがアクセスできないように、すでに削除または変更されている可能性があります。

ディレクトリが存在しないため、2行目が失敗する可能性があります。あなたはまた、何ができるの決定

6

パスが存在する場合は、Directory.Existsを使用してファイルまたはディレクトリであるかどうかを判断できます。

bool existsAndIsDirectory = Directory.Exists(path); 

パスが存在しない場合は、そのパスがファイルかディレクトリかを判断する手段がありません。

29

を作るためにDirectory.Existsのようなメソッドを使用している場合、私は最近、このテーマに関するブログのエントリを書いた

if (Directory.Exists(somePath)) { 
    var files = Directory.GetFiles(somePath); 
} 

は読む価値あり:

FileAttributes attr = File.GetAttributes(@"c:\Path\To\Somewhere"); 
if((attr & FileAttributes.Directory) == FileAttributes.Directory) 
{ 
    //it's a directory 
} 
+1

これは実際には答えです! – nawfal

7

また、ファイルattリブートはFile.GetAttributes()である(もちろん、ファイル/ディレクトリが存在する場合のみ)。 FileAttributesタイプの値はDirectoryで、パスがディレクトリかどうかを示します。

関連する問題