sim*_*ack 5 windows recycle-bin
当我列出文件$Recycle.Bin
夹中的文件时,已删除文件的文件名如下所示:
\n\n\n\n
C:\\$Recycle.Bin\\S-1-5-21-3704213190-1981809790-211521205-1000\\.\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd000200000008af358fa920f8faa779cf
Windows 如何将这些映射到原始文件的名称和路径?
\n\n我用谷歌搜索了这个,但没有找到答案,不知道要搜索什么。
\n小智 1
这些文件 (.\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd...
和.\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd...
) 实际上并不是由 Windows 在回收站的正常操作期间放置在那里的(回收站会生成 HelpingHand 的答案中提到的 $I 和 $R 文件)。
当文件无法删除时(例如,因为文件正在使用中,但在 POSIX 语义下可以删除),它们分别由 Cygwin 和 MSYS2 放置在那里。
\n由于某种原因,无效字符被cyg
转msys
置到 Unicode 低代理区域,以产生无效的 UTF-16 文件名。
可能是无效的 UTF-16 对用户隐藏它们,但大多数情况下它只会破坏工具,因为许多跨平台工具和语言在与无效 UTF-16 文件名交互时存在问题,因为它们希望能够使用 UTF-8 来管理文件名内部。
\n从在 Windows 10 1809 或更高版本上运行的 Cygwin 3 开始,我知道您唯一会看到此行为是当 msys/cygwin 可执行文件尝试删除正在运行的可执行文件(例如其本身)时;除了这种情况之外,Windows 现在实现了足够的 POSIX 语义来删除,例如,打开的文档,正如 Cygwin 所期望的那样。
\n据推测,Cygwin/MSYS2 依赖于 Windows 在清空回收站时删除所有文件,因为它们似乎没有任何东西可以自动清理文件本身,并且文件名与 Windows 使用的文件名不匹配您可以使用 Windows API 删除内容。
\n因此,为了回答您的问题,Windows 无法将它们映射回原始路径,因为它没有将它们放在那里。文件名仅包含原始路径的索引节点号和哈希值,因此也没有保留足够的信息来手动进行映射。
\n 归档时间: |
|
查看次数: |
4499 次 |
最近记录: |