いきさつ
ある時、これまで存在していたはずのフォルダがエクスプローラやdirコマンド上で表示されなくなる問題が発生しました。
このフォルダ上には「可視フォルダ」「不可視フォルダ」「不可視フォルダ2」という3つのフォルダが存在しますが、「隠しファイル」を有効にしても「不可視フォルダ2」が表示されません。また、誤って削除した可能性を考慮し、ファイル復元ソフトで調べてみましたが、「不可視フォルダ2」が削除された痕跡はありません。
更に調べてみたところ、パスを直接表示すると「不可視フォルダ2」へアクセスすることができました。フォルダへアクセスすることができたため、ファイルシステムの破損を疑い chkdsk
コマンドでチェックしてみましたが、エラーは見つかりませんでした。
原因
attrib コマンドで確認する
attribコマンドを実行したところ、次の結果が出力されました。
F:\example>attrib /D
H F:\example\不可視フォルダ
SH F:\example\不可視フォルダ2
F:\example\可視フォルダ
見えないフォルダには SH
という属性が適用されています。
S
はシステムファイル属性、 H
は不可視属性です。
以上から、システムファイル属性と不可視属性の両方が適用されたフォルダは、エクスプローラー上に表示されない、という仮説にたどりつきます。
「保護されたオペレーティングシステムファイルを表示しない」を無効化する(チェックを外す)
エクスプローラのフォルダオプションには、「保護されたオペレーティングシステムファイルを表示しない」という設定項目があります。通常、この項目にはチェックが入っていますが、この項目のチェックを外して確認してみます。
チェックを外してから設定を適用すると、これまで表示されなかった「不可視フォルダ2」も見えるようになりました。
以上より、先に仮設した「システムファイル属性と不可視属性の両方が適用されたフォルダは、エクスプローラー上に表示されない」が証明されました。ちなみに、このような隠しフォルダ・ファイルは「スーパー隠し属性」と言われるようです。
表示されない隠しフォルダ(スーパー隠し属性が適用されたフォルダ)を、普通の隠しフォルダに変更する
以下のコマンドを実行することで、システムファイル属性が解除され、「スーパー隠し属性」から普通の「隠し属性」のフォルダに変更されます。
なお、システムファイル属性と不可視属性の両方が適用されている場合は、一方の属性のみを解除することは出来ず、両方の属性を解除する必要があります。よって、普通の隠しフォルダとする場合は、一旦システムファイル属性と不可視属性の両方を解除してから、不可視属性を適用するという手順で対応します。
attrib -S -H 不可視フォルダ2
attrib -H 不可視フォルダ2
最後に
このページにたどり着いた方は、おそらく意識的にシステムファイル属性を適用した覚えのない方であろうと思います。また、なぜこのような問題が発生するのか、ほとんどのケースにおいては明確な原因が分からない状態であろうと思います。
原因は別として、もし同様の事象が発生した際には、本記事の内容が参考になれば幸いです。
参考