は以下のコードを検討 - documentation当たりよう存在しないファイルに対してFileAttributesの値が-1であるのはなぜですか?
FileInfo fileInfo = new FileInfo("C:\\doesNotExist.txt");
Console.WriteLine(fileInfo.Attributes);
Console.WriteLine(fileInfo.Attributes.HasFlag(FileAttributes.ReadOnly));
を列挙するためのデフォルト基底型は INTと-1の値を持つ INTは、基本的にバイナリですべて1です。 FileAttributesはそのメンバー値(as stated here)のビット単位の組み合わせを許可するため、FileAttributes -1のデフォルト値は、存在しないファイルがすべての可能なFileAttributesを所有していることを意味するのではないかと思われます(上記のコードでは、 True )
下位互換性。代わりにFile.GetAttributes()を使用すると、スローされます。 –