不小心把java文件删除了_如何使用Java恢复已删除的文件?
小编典典
要恢复已删除的文件,需要了解底层文件系统的实现方式,因此您需要做一些阅读工作,然后才能到达任何地方。
从理论上讲,是的,您绝对可以使用纯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恢复已删除的文件?相关推荐
- linux git删除的文件怎么还原,从Git仓库中恢复已删除的分支、文件或丢失的commit...
从Git仓库中恢复已删除的分支.文件或丢失的commit 在使用Git的过程中,有时可能会有一些误操作 比如:执行checkout -f 或 reset -hard 或 branch -d删除一个分支 ...
- android视频文件能删吗,如何从Android恢复已删除的视频
作者:Selena Komez11月更新了21,2016 "我不小心从三星Galaxy S6中删除了整个视频文件,所以我想知道是否有任何方法可以从我的Android恢复已删除的视频?谷歌给了 ...
- 怎么删除用户_小米手机如何恢复最近删除的便签 - 学显
小米手机上自带有便签小工具.如果有什么内容需要记下来的话,就可以记在那里面.不过,在手机上记东西,很容易发生失误:比如,一不小心,误删除了便签内容.这时候怎么办呢? 小米手机上自带有便签小工具.如果有 ...
- android 恢复root,如何从没有Root的Android恢复已删除的文件
照片非常重要,失去它们可能是一场噩梦.值得庆幸的是,有一种简单的方法可以在没有root的情况下恢复删除照片以及其他数据,如消息,视频,联系人等. 大多数用户认为,为了运行恢复工具,需要根设备.这是一个 ...
- 如何在前端删除项目中的文件_如何在macOS上恢复已删除的文件
有时候不小心删除了我们不打算删除的MacBook上的文件.在MacBook上恢复永久删除的文件非常困难,但这并非不可能.在本文中,我们将指导您如何恢复MacBook上最近恢复的文件或永久删除的文件.从 ...
- 怎么恢复已删除的全部数据,不小心删除的数据怎么恢复,删除的文件还能找回吗
怎么恢复已删除的全部数据?一般来讲,当文件被删除后,都会暂时被放置在回收站的位置,如果我们想找回相应的丢失数据,具体该如何操作呢? 一.当回收站没有被清空 这是最简单的一种恢复误删数据的方法,当我们在 ...
- linux文件恢复工具下载_十大最佳Linux数据恢复工具,用于恢复已删除/损坏的文件
linux文件恢复工具下载 Today we'll be going over the best Linux data recovery tools to help you recover any d ...
- testdisk 恢复文件_如何在Linux上安装TestDisk并恢复已删除的文件
testdisk 恢复文件 Ever stuck in a situation where you accidentally deleted a file? In this tutorial, we' ...
- 在Git存储库中查找并恢复已删除的文件
假设我在Git存储库中. 我删除文件并提交更改. 我继续工作并做出更多承诺. 然后,我发现需要还原该文件. 我知道我可以使用git checkout HEAD^ foo.bar来签出文件,但是我真的不 ...
最新文章
- 用TensorRT针对AArch64用户的交叉编译示例
- python 2.* 升级到python3.*的过程
- python叫什么-python中什么叫类
- HDOJ 3642 Get The Treasury(扫描线 + 线段树 + 离散化 立方体的并)
- 十二年 10 次 IT 大考 猪八戒网的系统架构和开发流程经历了什么?
- java,UDP协议简单实现
- 程序的加载和执行(六)——《x86汇编语言:从实模式到保护模式》读书笔记26
- 一次bug调试经验----To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
- qml tableview 滚动条加宽_qt qtableview 样式设置
- Java面试必备知识点梳理:二分查找算法
- hdu 4302 Holedox Eating 线段树去维护蛋糕!! 多校联合赛第三题
- 毕业设计选题管理系统
- SSR pac模式配置和Gitee转移图床失败的尝试
- 郭依婷—大学生的创业故事
- 不用找了,大厂在用的分库分表方案,都在这了
- 三星i917官方wp7.8刷机、越狱、防锁全过程
- 平安证券最新股票池强荐4只股
- 创建Mesh-格子地图转NavMesh-可破坏墙壁
- timer计算 与rcc
- Python爬虫-CSDN博客排行榜数据爬取
热门文章
- 机器学习——概率图模型
- linux对外开放端口号
- 码元,数据传输速率,带宽,信噪比,信道容量
- java实现12小时制和24小时制的时间
- Linux安装GaussDB数据库图文,GaussDB 100 on Linux安装手册
- 国内知名的信息与通讯调查研究咨询公司情况
- OpenGL入门示例8——图形平移、旋转、缩放
- Writing a code for speed tracking control of maglev trains in MATLAB using reinforcement learning
- python期末大作业_上海交通大学python期末大作业题目(姚天昉)
- 哈佛《幸福课》 第4课 积极的环境能改变人