【问题标题】:How can I undelete a file using C#?如何使用 C# 取消删除文件?
【发布时间】:2011-12-09 01:52:55
【问题描述】:

我正在寻找一些丢失的 .jpg 图片。这是一个 .bat 文件,用于设置我的情况的简化版本

md TestSetup
cd TestSetup
md a
cd a
echo "Can we find this later?" > a.abc
del a.abc
cd..
rd a

再次打开文本文件需要什么代码?我实际上正在寻找以类似方式处理的 .jpeg 文件

更多详细信息:我正在尝试从以前的一键式备份中恢复图片文件,其中目录和文件已被删除,所有内容都以单个字符名称保存在备份中,并且每个文件都具有相同的 3 个字母扩展名.有当前备份,但他们需要查看以前删除的备份(或至少 .jpg 文件)。

这就是我试图接近它的方式:C# code

【问题讨论】:

  • 当你运行你的 bat 文件时,被删除的文件最终会进入回收站吗?
  • 您必须自己编写这个应用程序吗?有免费的已删除文件恢复实用程序可以完全满足您的需求。
  • MusiGenesis:不,当一个批处理文件以这种方式删除它时,它会执行 Matthew 提到的操作,将目录条目中文件名的第一个字符替换为 00h。
  • psasik:我很想找到一个便宜或免费的实用程序来做到这一点。虽然我拒绝为 crippleware 付费,尤其是当我不知道它是否会起作用时。单字母目录和文件名以及更改的文件扩展名使其比应有的困难得多。

标签: c# data-recovery


【解决方案1】:

据我所知,大多数文件恢复工具实际上会读取磁盘上的低级文件系统格式并尝试将已删除的文件拼凑在一起。这是因为,至少在 FAT 中,已删除的文件仍驻留在指定目录的扇区中(只是使用不同的第一个字符将其标识为“已删除”)。新文件可能会覆盖这些已删除的条目,从而使文件无法恢复。这只是一点点理论。

有一个当前备份,但它们 需要查看以前删除的 (或至少是 .jpg 文件)。

除非您要从中恢复该文件当时的备份,否则我相信如果不诉诸低级文件系统读取,您将很难获得该文件.即便如此,如果进行了足够多的修改(或者它不是像 FAT 这样的微不足道的文件系统),您可能会很不走运。

【讨论】:

  • 它位于 FAT32 驱动器上,我使用十六进制编辑器进入并验证仍有许多已删除的目录和文件存在。有数百个可用的单字母名称(已删除)目录条目,我想我将不得不迭代恢复每个目录,然后检查每个删除的目录和文件条目,并检查每个文件的前 4 个字节以查看是否这是一个有效的 .jpg。
  • 是的,这个繁琐的过程是大多数文件恢复软件为您所做的。我强烈建议编写一个代码解决方案(一个简单的 FAT32 驱动程序可以在几个小时内完成,以防您还不知道),因为使用十六进制编辑器手动执行可能会更加痛苦。
猜你喜欢
  • 2010-10-04
  • 2012-02-07
  • 2020-06-12
  • 2017-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-29
  • 2016-01-09
相关资源
最近更新 更多