Como ocultar / un-ocultar um arquivo sem apagar outros atributos em C ++ no Windows
Eu gostaria de ser capaz de esconder / un-ocultar um arquivo no Windows em C ++, mas eu estava preocupado com a exclusão de outros atributos (como FILE_ATTRIBUTE_READONLY, FILE_ATTRIBUTE_ARCHIVE, ...).
Aqui está o código atual:
<code>//Hiding the file SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN); // Un-Hiding the file SetFileAttributes(path, FILE_ATTRIBUTE_NORMAL); </code>
Isso funciona bem para arquivos regulares, mas vai esconder o arquivo remover um sinalizador READONLY por exemplo? Vai mostrar o arquivo para removê-lo?
Se sim, eu estava planejando fazer algo assim:
<code>//Hiding the file int attr = GetFileAttributes(path); if ((attr | FILE_ATTRIBUTE_HIDDEN) == 0) { SetFileAttributes(path, attr & FILE_ATTRIBUTE_HIDDEN); } //Unhiding the file int attr = GetFileAttributes(path); if ((attr | FILE_ATTRIBUTE_HIDDEN) == FILE_ATTRIBUTE_HIDDEN) { SetFileAttributes(path, attr & FILE_ATTRIBUTE_HIDDEN); } </code>
Isso funcionaria?