小编典典

要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方。

从理论上讲,是的,您绝对可以使用纯Java来做到这一点。您只需要了解如何绕过文件系统从原始磁盘读取数据即可。在Unix系统上,这很简单:将设备节点作为文件打开(您需要root权限)并进行读取。在Windows上,可能有类似的过程。最糟糕的是,您将不得不使用C或C++创建一个帮助程序库来为您读取数据。

一旦可以访问原始数据,请查找文件在特定文件系统中的存储方式,并开始在读取的数据中寻找相似的模式。

但这不是您下午可以做的事情。

更新:如何绕过文件系统。

在Unix系统上,您可以像这样从分区或卷中读取:

InputStream sda1 = new FileInputStream("/dev/sda1");

int firstByte = sda1.read();

在Windows上,您可以从阅读

\\.\PhysicalDisk0。从命名文件,路径和命名空间:

使用Win32设备名称空间的另一个示例是将CreateFile函数与“ \\。\

PhysicalDiskX”(其中X是有效的整数值)或“ \\。\

CdRomX”一起使用。这样,您可以绕过文件系统直接访问那些设备。之所以可行,是因为这些设备名称是由系统在枚举这些设备时创建的,并且某些驱动程序还将在系统中创建其他别名。例如,实现名称“

C:\”的设备驱动程序具有自己的名称空间,该名称空间也恰好是文件系统。

通过该CreateFile函数的API 通常使用“ \\。\”前缀,因为CreateFile该函数用于打开文件和设备,具体取决于您使用的参数。

如果使用Windows API函数,则应使用“ \\。\”前缀仅访问设备,而不访问文件。

大多数API不支持“ \\。\”;只有那些旨在与设备名称空间一起使用的设备才能识别它。请务必检查每个API的参考主题,以确保正确。

我不知道Java

API是否使用来实现,CreateFile或者它是否进行了某些名称修饰,这意味着您无法访问设备名称空间。在最坏的情况下,您将不得不创建一个包装器库,该包装器调用CreateFile并将其返回的HANDLE转换为可在Java中使用的文件描述符。根本没有工作。

2020-10-25

不小心把java文件删除了_如何使用Java恢复已删除的文件?相关推荐

  1. linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...

    从Git仓库中恢复已删除的分支.文件或丢失的commit 在使用Git的过程中,有时可能会有一些误操作 比如:执行checkout -f 或 reset -hard 或 branch -d删除一个分支 ...

  2. android视频文件能删吗,如何从Android恢复已删除的视频

    作者:Selena Komez11月更新了21,2016 "我不小心从三星Galaxy S6中删除了整个视频文件,所以我想知道是否有任何方法可以从我的Android恢复已删除的视频?谷歌给了 ...

  3. 怎么删除用户_小米手机如何恢复最近删除的便签 - 学显

    小米手机上自带有便签小工具.如果有什么内容需要记下来的话,就可以记在那里面.不过,在手机上记东西,很容易发生失误:比如,一不小心,误删除了便签内容.这时候怎么办呢? 小米手机上自带有便签小工具.如果有 ...

  4. android 恢复root,如何从没有Root的Android恢复已删除的文件

    照片非常重要,失去它们可能是一场噩梦.值得庆幸的是,有一种简单的方法可以在没有root的情况下恢复删除照片以及其他数据,如消息,视频,联系人等. 大多数用户认为,为了运行恢复工具,需要根设备.这是一个 ...

  5. 如何在前端删除项目中的文件_如何在macOS上恢复已删除的文件

    有时候不小心删除了我们不打算删除的MacBook上的文件.在MacBook上恢复永久删除的文件非常困难,但这并非不可能.在本文中,我们将指导您如何恢复MacBook上最近恢复的文件或永久删除的文件.从 ...

  6. 怎么恢复已删除的全部数据,不小心删除的数据怎么恢复,删除的文件还能找回吗

    怎么恢复已删除的全部数据?一般来讲,当文件被删除后,都会暂时被放置在回收站的位置,如果我们想找回相应的丢失数据,具体该如何操作呢? 一.当回收站没有被清空 这是最简单的一种恢复误删数据的方法,当我们在 ...

  7. linux文件恢复工具下载_十大最佳Linux数据恢复工具,用于恢复已删除/损坏的文件

    linux文件恢复工具下载 Today we'll be going over the best Linux data recovery tools to help you recover any d ...

  8. testdisk 恢复文件_如何在Linux上安装TestDisk并恢复已删除的文件

    testdisk 恢复文件 Ever stuck in a situation where you accidentally deleted a file? In this tutorial, we' ...

  9. 在Git存储库中查找并恢复已删除的文件

    假设我在Git存储库中. 我删除文件并提交更改. 我继续工作并做出更多承诺. 然后,我发现需要还原该文件. 我知道我可以使用git checkout HEAD^ foo.bar来签出文件,但是我真的不 ...

最新文章

  1. 用TensorRT针对AArch64用户的交叉编译示例
  2. python 2.* 升级到python3.*的过程
  3. python叫什么-python中什么叫类
  4. HDOJ 3642 Get The Treasury(扫描线 + 线段树 + 离散化 立方体的并)
  5. 十二年 10 次 IT 大考 猪八戒网的系统架构和开发流程经历了什么?
  6. java,UDP协议简单实现
  7. 程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26
  8. 一次bug调试经验----To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
  9. qml tableview 滚动条加宽_qt qtableview 样式设置
  10. Java面试必备知识点梳理:二分查找算法
  11. hdu 4302 Holedox Eating 线段树去维护蛋糕!! 多校联合赛第三题
  12. 毕业设计选题管理系统
  13. SSR pac模式配置和Gitee转移图床失败的尝试
  14. 郭依婷—大学生的创业故事
  15. 不用找了,大厂在用的分库分表方案,都在这了
  16. 三星i917官方wp7.8刷机、越狱、防锁全过程
  17. 平安证券最新股票池强荐4只股
  18. 创建Mesh-格子地图转NavMesh-可破坏墙壁
  19. timer计算 与rcc
  20. Python爬虫-CSDN博客排行榜数据爬取

热门文章

  1. 机器学习——概率图模型
  2. linux对外开放端口号
  3. 码元,数据传输速率,带宽,信噪比,信道容量
  4. java实现12小时制和24小时制的时间
  5. Linux安装GaussDB数据库图文,GaussDB 100 on Linux安装手册
  6. 国内知名的信息与通讯调查研究咨询公司情况
  7. OpenGL入门示例8——图形平移、旋转、缩放
  8. Writing a code for speed tracking control of maglev trains in MATLAB using reinforcement learning
  9. python期末大作业_上海交通大学python期末大作业题目(姚天昉)
  10. 哈佛《幸福课》 第4课 积极的环境能改变人