WindowsでC++でファイルを非表示/非表示にしたいのですが、FILE_ATTRIBUTE_READONLY 、FILE_ATTRIBUTE_ARCHIVE、...)。ここでWindows上のC++で他の属性を消去しないでファイルを非表示/非表示にする方法
は、現在のコードです:
//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);
}
は、その仕事がしませんか?
一つのマイナーなもの:(それは 'INVALID_FILE_ATTRIBUTES'に等しいかどうかを確認してください)' GetFileAttributes'の戻り値をチェックすることを忘れないでください。 –