C ++のWindowsでファイルを非表示/再表示できるようにしたいのですが、他の属性(FILE_ATTRIBUTE_READONLY、FILE_ATTRIBUTE_ARCHIVEなど)の消去が心配でした。
現在のコードは次のとおりです。
//Hiding the file
SetFileAttributes(path, FILE_ATTRIBUTE_HIDDEN);
// Un-Hiding the file
SetFileAttributes(path, FILE_ATTRIBUTE_NORMAL);
これは通常のファイルでは問題なく機能しますが、ファイルを非表示にすると、たとえばREADONLYフラグが削除されますか?ファイルを再表示すると削除されますか?
はいの場合、私は次のようなことを計画していました。
//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);
}
それはうまくいくでしょうか?