FATとは、MicrosoftのOSで利用されるファイルシステムです。
exFATとは、FAT32を拡張したリムーバブル メディア向けのファイルシステムです。USBメモリなどでの利用が想定されているため、内蔵ハードディスクなどでは原則として使用できません。exFATとは 【 Extended File Allocation Table 】 - IT用語辞典 e-Words
ファイルシステム | 最大容量 | ファイルサイズの上限 |
---|---|---|
FAT32 | 32GB | 4GB |
exFAT | 16EB | 16EB |
次のような特徴があります。
2000より前のWindowsはNTFSをサポートしないため、NTFSでフォーマットされた領域にはアクセスできません。NTFS for Windows 98は、そのような問題を解決してくれるツールです。窓の杜 - 【集中企画】あなたのパソコン、まだFATなんですか? NTFSのススメ 齋藤正穂 (2002/12/05)
もし不意にドライブの中身が空になったとしたら、それはファイルシステムに問題が発生しているのかもしれません。
まずはチェックディスクを実行します。このとき[ファイル システム エラーを自動的に修復する]がチェックされていることを確認します。
終了しても何もファイルが表示されないならば、[フォルダーオプション]で[保護されたオペレーティング システム ファイルを表示しない (推奨)]のチェックを外して、システムファイルが表示されるようにします。
FOUND.000のような「FOUND.」に連番がつづくフォルダが表示されたら、それを開きます。
FILE0000.CHKのようなファイルが表示されたら、それがチェックディスクによって修復されたファイルです。
もし完全に修復されているならば、そのファイルに対応したアプリケーションでそのまま開けます。ファイル形式がわからないならば、Stirlingなどのバイナリエディタで開いて調査するか、フォーマットの判別ツールで確認できます。
ファイルが破損してしまっている場合には、さらにそれを修復しないと開けないこともあります。
フォルダとは、ファイル システムのディレクトリに、仮想的なディレクトリも含めた概念です。 shell - What is the difference between a directory and a folder? - Stack Overflow ASCII.jp:Windowsにおけるフォルダーとディレクトリとは (1/2) 塩田紳二 (2022/01/23)
個々の制限は、ファイルシステムに依存します。
Windows APIでは、ファイル パスを含めて260文字までに制限されています。Maximum Path Length Limitation - Naming Files, Paths, and Namespaces (Windows) | MSDN ファイル名の最大長はいくつですか。 - ファイル名とファイル名の拡張子: よく寄せられる質問 - Windows ヘルプ
Windows 10では、この制限を解除できます。
Windowsでは「\ / ? : * " > < |
」が禁止文字とされています。ファイル名に使用できない文字にはどんなものがありますか。 - ファイル名とファイル名の拡張子: よく寄せられる質問 - Windows ヘルプ
Unicode制御文字をファイル名に埋め込むことで、拡張子を偽装することができます。たとえばファイル名を「sample_iva.exe」という名前にして、
このファイル名の「iva.exe」の直前に、Unicode制御文字のRLO (Start of right-to-left override) を埋め込みます。
そうするとこのファイルは外観上「sample_exe.avi」と表示され、拡張子が.aviであるかのように見えます。
埋め込まれた制御文字は、そのファイル名を編集状態にして[Unicode 制御文字の表示]を選択することで確認できます。
ちなみに登録されている拡張子は表示されないように設定している場合には、「sample_avi」と表示されます。
RLOの悪用による拡張子の偽装に対処するには、ファイル名にRLOを含むファイルを実行できないように制限をかけます。それにはローカル セキュリティ ポリシーを起動し、[ソフトウェアの制限のポリシー]の[追加の規則]を選択します。このとき[追加の規則]の項目が表示されないならば、[ソフトウェアの制限のポリシー]を右クリックし、[新しいポリシーの作成]からポリシーを作成します。
[追加の規則]を選択したならば、それを右クリックして[新しいパスの規則]を選択します。そしてパスの項目に「**」と入力し、この2つのアスタリスクの中間を右クリックしてRLOを挿入します。さらに[セキュリティ レベル]が[許可しない]となっていることを確認したら[OK]で保存します。設定変更が完了したら、それを反映させるためOSを再起動させます。
最後にRLOを埋め込んだファイルを実行し、「グループ ポリシーによりこのプログラムはブロックされています。詳細はシステム管理者に問い合わせてください。」のようなメッセージが表示され、実行が阻止されるのを確認します。RLO偽装をちょっとしたTipsで対策 - ファイル名は「左から右に読む」とは限らない?! - @IT 飯田朝洋 (2009/09/28)
MS-DOSやWindows 3.1以前で使用されていたファイル名の命名規則で、ファイル名部分が半角で最大8文字、拡張子部分が最大3文字となっています。
この短いファイル名 (short filename) は、Win32のGetShortPathName()で取得できます。長いパスを8.3形式の短いパスに変換するには?[C#、VB] - @IT 一色政彦 (2007/10/11)
ファイル属性 | 意味 | 用途 | |
---|---|---|---|
R | Read-only | 読み取り専用 | 書き込みを禁止するように指示できる |
A | Archive | アーカイブ | システムがファイルを更新するとオンになる。バックアップ ツールは、バックアップ後にこれをオフにする |
S | System | システム ファイル | エクスプローラなどで、既定の状態では表示しないように指示できる |
H | Hidden | 隠しファイル | エクスプローラなどで、既定の状態では表示しないように指示できる |
I (N) | not content Indexed | 非インデックス対象ファイル | Windows Searchに対して、インデックスの対象から除外するように指示できる |
C | Compact | 圧縮 | 圧縮されていることを示す |
E | Encrypted | 暗号化 | 暗号化されていることを示す |
ファイル属性は、attribコマンドでオンやオフにできます。C属性はcompactコマンドで圧縮するとオンになり、E属性はcipherコマンドで暗号化するとオンになります。
項目 | 内容 |
---|---|
作成日時 | ファイルが作成された日時 |
更新日時 | ファイルに書き込まれ、閉じられた日時 |
アクセス日時 | ファイルが開かれ、閉じられた日時 ※1 |
※1 NtfsDisableLastAccessUpdateが1に設定されていると、更新されない NtfsDisableLastAccessUpdate | Microsoft Learn
Windowsでは、バージョンによって日時の表記が異なります。Windows 秘話: ファイル プロパティのタイムスタンプの進化 | Microsoft Learn Raymond Chen (2010/02)
ファイルシステムによって、タイムスタンプを記録するタイミングなどが異なります。
FAT | exFAT | NTFS | |
---|---|---|---|
時刻の種類 | 現地時刻 | UTC (世界協定時刻) | |
作成日時 | 0.01秒 単位 | 0.01秒 単位 | |
更新日時 | 2秒 単位 | 0.01秒 単位 | |
アクセス日時 | 1日 単位 | 2秒 単位 | 既定では記録なし |
FAT | exFAT | NTFS | ||
---|---|---|---|---|
コピー | 作成日時 | コピーされた日時 | ||
更新日時 | 維持される | |||
移動 | 作成日時 | 維持される | ||
更新日時 | 維持される | |||
異なるドライブへのコピー | 作成日時 | 維持される | 維持される | コピーされた日時 |
更新日時 | 維持される | コピーされた日時 | 維持される | |
異なるドライブへの移動 | 作成日時 | 維持される | ||
更新日時 | 維持される |
ファイルにこの情報が付加されているかどうかは、dirコマンドに/rオプションを指定することで確認できます。
C:\>dir /r 2000/01/01 00:00 0 test 8 test:stream:$DATA 2000/01/01 00:00 1,100 sample.txt 85 sample.txt:Zone.Identifier:$DATA
またその内容は、ファイル名:ストリーム名
をコマンドへ渡すことで確認できます。
D:\>more < test:stream hello D:\>more < sample.txt:Zone.Identifier [ZoneTransfer] ZoneId=3
この情報を一括して処理できるツールとして、Streams | TechNetが提供されています。
この情報が付加されたファイルには、エクスプローラのプロパティで「このファイルは他のコンピューターから取得したものです。このコンピューターを保護するため、このファイルへのアクセスはブロックされる可能性があります。」と表示され、実行が制限されます。
エクスプローラでこのZoneIdを削除するには、そのファイルのプロパティで[ブロックの解除]を実行します。そのとき解除に失敗するならば、アクセスが許可されたフォルダへコピーした上で再度実行します。
wmicコマンドにより取得できます。windows xp - Is there a way to get file metadata from the command line? - Super User
C:\>wmic datafile where name="C:\\Windows\\System32\\cmd.exe" get
取得可能なプロパティは、次のように確認できます。
C:\>wmic datafile get /?
ファイルリスト作成機のダウンロード : Vector ソフトを探す!
パーミッションとは、ファイルやフォルダに対するアクセス権の許可情報のことです。
Windowsはアクセス権の管理のため、SIDでユーザーを識別しています。
アクセス制御リストとは、アクセス制御エントリ (Access Control Entries : ACE) のリストです。Access Control Lists (Windows) | MSDN
コマンドラインからは、caclsで制御できます。
ジャーナリング ファイルシステムとは、ファイル処理をログに記録することで、障害発生時の原因の確認を容易にするものです。