-1

私はもう試した

if(Directory.Exists(path)) 
    //is directory
else
    //is file

しかし、これは常に機能するとは限りません。理由がわからない。何か案は?

4

1 に答える 1

2

チェック中にエラーが発生した場合、またはユーザーに十分な権限がない場合、Directory.ExistsFile.Existsの両方がfalseを返します。

Directory.Existsのドキュメントから

ディレクトリに対する少なくとも読み取り専用のアクセス許可がない場合、Existsメソッドはfalseを返します。指定されたファイルが存在するかどうかを判別しようとしているときにエラーが発生した場合、Existsメソッドはfalseを返します。

File.Existsのドキュメントから

呼び出し元に指定されたファイルを読み取るための十分な権限がない場合、例外はスローされず、パスの存在に関係なくメソッドはfalseを返します...指定されたファイルが存在するかどうかを判断しようとしているときにエラーが発生した場合、Existsメソッドはfalseを返します。

于 2012-09-21T15:41:18.430 に答える