Я нашел этот фрагмент кода на SO (жаль, что я не имею ссылку на вопрос/ответ комбо)Как этот оператор C# работает в этом фрагменте кода?
bool isDir = (File.GetAttributes(source) & FileAttributes.Directory) == FileAttributes.Directory;
Это меня смущает, потому что FileAttributes.Directory
на обеих сторонах ==
.
Что делает &
в этом случае? Я не уверен, как читать эту строку кода. Я пытаюсь оценить, является ли строка пути файлом или каталогом.
Я не уверен, как C++ обрабатывает логические значения, но ANSI C также позволит немного короче: bool isDir = (File.GetAttributes (source) & FileAttributes.Directory); – oosterwal