LoginSignup
0
0

[Windows] ゴミ箱に関する調査メモ

Last updated at Posted at 2023-11-11

目的

ファイルやディレクトリをゴミ箱に移動させるプログラムを作成した時の調査メモを備忘録として記録する。

概要

Windowsの場合、ゴミ箱を操作するのは少々面倒。
というのもゴミ箱は特殊フォルダらしく、管理方法が通常のディレクトリと異なる。
そのため、単純にmove類のコマンドで操作することはできない(ゴミ箱の仕様に準拠せずに、ファイルを移動だけならできなくもない。GUI上のゴミ箱に表示されない可能性がある)。

ゴミ箱の場所

C直下の隠しファイルである$Recycle.Binがゴミ箱である。

C:\>dir /a
 C:\ のディレクトリ

2000/01/01  12:34    <DIR>          $Recycle.Bin
...(snip)

さらに中にはSID(セキュリティ識別子)ごとにディレクトリがある。SIDに関してはWiki1 等を参考にされたい。
※ なお、SIDのリストはregeditでHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileListで確認することが可能

C:\> cd $Recycle.Bin && dir /a
 C:\$Recycle.Bin のディレクトリ

2000/01/01  12:34    <DIR>          .
2000/01/01  12:34    <DIR>          ..
2000/01/01  12:34    <DIR>          S-1-2-34
2000/01/01  12:34    <DIR>          S-1-2-34-1234567890-1234567890-1234567890-1234

SIDディレクトリの中には$I*$R*で始まる、ランダムな文字列名のファイルやディレクトリが存在する。

 C:\$RECYCLE.BIN\S-1-2-34-1234567890-1234567890-1234567890-1234 のディレクトリ

2000/01/01  12:34    <DIR>          .
2000/01/01  12:34    <DIR>          ..
2023/11/11  20:47                88 $IQO4ITQ.txt
2023/11/11  23:36               104 $IW8DVKB
2023/11/11  20:47                24 $RQO4ITQ.txt
2023/11/11  23:36    <DIR>          $RW8DVKB
2000/01/01  12:34               129 desktop.ini

Windowsでは削除されたファイル1つに対して、$I*$R*の1組のファイルが生成される。

  • $I*

    • メタデータ2 。以下はVersion2(Windows10以降)
    オフセット(10進数) サイズ(バイト) 概要
    0 8 バージョン情報で、02 00 00 00 00 00 00 00
    8 8 サイズ情報
    16 8 削除した時間
    24 4 ファイルパスの文字数(NULL文字含む)
    24 2*文字数 ファイルパス
  • $R*

    • ゴミ箱に入れられたファイルやディレクトリ(実データ)

参考

  1. https://en.wikipedia.org/wiki/Security_Identifier

  2. https://github.com/danielmarschall/recyclebinunit/blob/master/FORMAT.md#version-2-introduced-somewhere-in-a-windows-10-release

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0