den Code unten Betrachten -Warum ist der FileAttributes-Wert für eine Datei, die nicht existiert -1?
FileInfo fileInfo = new FileInfo("C:\\doesNotExist.txt");
Console.WriteLine(fileInfo.Attributes);
Console.WriteLine(fileInfo.Attributes.HasFlag(FileAttributes.ReadOnly));
Gemäß den documentation der Standard zugrunde liegende Typ für eine Aufzählung ist int und ein int mit einem Wert von -1 sind im Grunde alle 1s in binär. Da FileAttributes eine bitweise Kombination seiner Memberwerte erlaubt (as stated here), warum ist der Standardwert für FileAttributes -1, da dies bedeuten würde, dass eine Datei, die nicht existiert, alle möglichen FileAttributes besitzt (der obige Code druckt True für die dritte) Zeile)
Abwärtskompatibilität. Verwenden Sie File.GetAttributes() stattdessen, es wirft. –