数据恢复 2

  1. private void button1_Click(object sender, EventArgs e)
  2. {
  3. try
  4. {
  5. //检查文件是否存在
  6. if (!File.Exists(textBox1.Text.ToString()))
  7. {
  8. MessageBox.Show("输入文件不存在!");
  9. }
  10. else if (Convert.ToInt32(textBox2.Text) < 1)  //覆盖次数大于1
  11. {
  12. MessageBox.Show("覆盖次数要大于1");
  13. }
  14. else
  15. {
  16. //初始化进程 命名空间 using System.Diagnostics
  17. Process da = new Process();
  18. //设置要启动应用程序或文档名
  19. da.StartInfo.FileName = @"C:\WINDOWS\system32\sdelete.exe";
  20. //设置要启动应用程序使用的一组命令行参数
  21. //参数:执行覆盖操作次数 删除文件路径
  22. da.StartInfo.Arguments = string.Format("-p {0} -q \"{1}\"",
  23. Convert.ToInt32(textBox2.Text), textBox1.Text.ToString());
  24. //设置窗口状态 隐藏窗口显示
  25. da.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
  26. //直接执行程序 不使用Shell打开
  27. da.StartInfo.UseShellExecute = false;
  28. //输入流 输出流 错误写入流
  29. da.StartInfo.RedirectStandardInput = true;
  30. da.StartInfo.RedirectStandardOutput = true;
  31. da.StartInfo.RedirectStandardError = true;
  32. //不创建窗口,静默模式
  33. da.StartInfo.CreateNoWindow = true;
  34. //开始执行进程
  35. da.Start();
  36. //从输出流中读取程序输出
  37. string output = da.StandardOutput.ReadToEnd();
  38. //等待程序退出
  39. da.WaitForExit();
  40. //文件不存在记录输出流信息
  41. if(File.Exists(textBox1.Text.ToString()))
  42. {
  43. richTextBox1.AppendText(output);
  44. }
  45. }
  46. }
  47. catch (Exception msg) //异常处理
  48. {
  49. MessageBox.Show(msg.Message);
  50. }
  51. }

但是,虽然已经把sdelete.exe放置于“C:\windows\system32”文件夹下,使用cmd运行才能正确删除,但当通过C#代码调用时总是会显示错误"系统找不到指定文件".这让我万分伤心啊,但同时该方法的不足之处是需要用户放置sdelete程序,因此我需要寻求新的方法实现粉碎文件.

但是代码中所涉及的使用Process的方法还是值得大家学习的,我们还可以通过它实现很多功能,如下:

[csharp] view plaincopy

  1. //IE浏览器打开百度
  2. Process.Start("IExplore.exe", "http://www.baidu.com/");
  3. //打开库
  4. Process.Start("explorer.exe");
  5. //打开Excel办公软件
  6. Process.Start("EXCEL.exe");
  7. //打开cmd
  8. Process.Start("cmd.exe");

关于Process的详细用法建议大家阅读下面这篇优秀文章:http://blog.csdn.net/chen_zw/article/details/7896264
下面是调用cmd.exe程序实现ipconfig查看功能,但是当使用"sdelete -p 2 "F:\test.txt""时还是不能运行,我也不知道为什么?不知道怎么访问Sdelete.exe程序,使用管理员权限运行也不行.

[csharp] view plaincopy

  1. string command = "";
  2. System.Diagnostics.Process p = new System.Diagnostics.Process();
  3. p.StartInfo.FileName = "cmd.exe";             //文件名
  4. command = "/c" + "ipconfig";
  5. //command = "/c" + "sdelete -p 3 \"F:\\bbb.txt\"";
  6. p.StartInfo.Arguments = command;              //参数
  7. p.StartInfo.UseShellExecute = false;          //是否使用操作系统shell启动
  8. p.StartInfo.RedirectStandardInput = true;     //接受来自调用程序的输入信息
  9. p.StartInfo.RedirectStandardOutput = true;    //由调用程序获取输出信息
  10. p.StartInfo.RedirectStandardError = true;     //重定向标准错误输出
  11. p.StartInfo.CreateNoWindow = true;            //不显示程序窗口
  12. p.Start();                                    //启动程序
  13. string output = p.StandardOutput.ReadToEnd();
  14. richTextBox1.AppendText(output);

cmd中ipconfig的运行结果如下,但使用sdelete参数就是不行(>.<):

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-29 21:54:39

数据恢复 2的相关文章

mac数据恢复软件EasyRecovery使用教程

mac数据恢复软件EasyRecovery使用教程 文件丢失是非常让人郁闷的!因为没有备份所以很多重要的东西都没有办法找回!小编为大家准备了EasyRecovery,这款数据恢复软件费非常好用,可以将您丢失的数据找回.小编还特意为大家准备了数据恢复软件EasyRecovery使用教程,下面就和小编一起来看看具体如何使用吧! <ignore_js_op> 数据恢复软件EasyRecovery使用教程介绍:第一步:我们需要在Mac中安装好EasyRecovery for Mac,然后启动EasyR

TestDisk 数据恢复 重建分区表恢复文件-恢复diskpart clean

source:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款开源软件,受GNU General Public License (GPL v2+)条款保护. TestDisk:http://www.cgsecurity.org/wiki/TestDisk_CN TestDisk 是一款强大 的免费数据恢复软件! 早期主要是设计用来在使用有缺陷的软件,病毒或人为误操作(如不小心删除分区表)导致的分区丢失后,帮助用户恢复丢失分区,或修复不

&lt;PY&gt;&lt;目录操作&gt;自制空闲磁盘擦除器(反数据恢复软件)

使用ccleaner的时候有一个安全擦除MFT的选项,发现速度奇慢,而且可定制性很差 所以自己用python写了一个小程序来擦除数据 原理是通过产生文件覆盖空闲空间,然后删除这些文件,来实现原来残留文件的不可恢复,从而使数据恢复软件失效,来确保已删除(清空回收站之后)的数据的安全 理论上设置size=1000000,便不可恢复1MB以上的文件:设置1000,便不可恢复1KB以上的文件 先上效果图 代码如下: import os,win32file,shutil def getpath(): tr

SAN LUN Mapping出错导致文件系统共享冲突,数据恢复成功

[用户单位] 中国联通某分公司 [数据恢复故障描述] SUN 光纤存储系统,中心存储为6枚300G硬盘组成的RAID6,划分为若干LUN,MAP到不同业务的服务器上,服务器上运行SUN SOLARIS操作系统. 正常工作状态下,用户需要新增应用,所以增加了一台IBM服务器,之后在线状态下将存储中的某个LUN映射到新增的IBM服务器,不料,映射的卷是原先已经MAP到SOLARIS生产系统上的某个LUN上了,由于并未及时发现,IBM服务器上已经对此LUN进行了部分初始化操作(操作不详),之后SOLA

浪潮服务器硬盘坏道数据恢复

它有一个设计合理.功能强大的内部架构,大幅度提升了性能,但某些物理故障或其他操作都可能会对卷或存储造成破坏,因此对系列存储的数据恢复技术才有了用武之地.而发生这些故障之后只能找专业的数据恢复公司做数据挽救工作.我最近处理了一起浪潮服务器因磁盘故障导致存储不可用的案例: 故障描述: 宁夏某市某局中的一台浪潮服务器,底层是6块300GB SAS硬盘组成的RAID.两块盘亮黄灯,导致RAID5崩溃,存放的是Oracle 数据库文件,在服务器系统的上层一共分了1个卷,卷大小为1.5 TB.后因磁盘故障而

android数据恢复

很多人都有在使用手机时误删数据的经历,比方说和女朋友分手后把之前一起玩耍的影像资料删除了,结果没过几天又复合了,某天女朋友想和你一起回忆某个温馨时刻,这时候拿不出照片或视频来会非常尴尬.为了避免这类人(Xi)间(Wen)惨(Le)剧(Jian)发生,很有必要掌握一下数据恢复技术. 传统的数据恢复往往借助软件即可完成,例如Easy Recovery,Recuva之类.但这类软件对新的安卓系统手机往往无能为力了,因为从几年前开始,大部分手机生产厂商用"媒体设备"MTP模式替代了大容量USB

es数据恢复杂记

kill -9或者断电等原因异常,es在重启后,会通过translog来进行数据恢复. 默认的恢复速度是较慢的,可以设置indices.recovery.current_streams:10增大恢复的线程数,还可以设置indices.recovery的其他参数加快恢复的速度. 但是某些情况下,如lucene文件格式错误等,重启es后无法通过自身恢复,可以考虑如下的方式. 1.主分片是正常的,副本分片有错误,且无法通过复制机制恢复.可以考虑删除有问题的分片,集群会通过复制的方式恢复. 2.主分片和

UNIX故障数据恢复方案

一.故障描述:基于UNIX系统,软件级别的数据灾难 故障表现: 1.存储结构出错 2.数据删除 3.文件系统格式化 4.其它原因数据丢失 二.解决方案 ◆检测 1.检测是否存在硬件故障,如硬件故障,转硬件处理 2.以只读方式检测故障表现是否与用户描述相同 ◆恢复 1.备份:以只读方式对故障存储做完整镜像(参考附录) 2.在备份中进行数据分析及恢复操作. 3.通常,恢复后的数据会暂存在另一个存储体上 ◆验收 对恢复好的数据进行验证,确认其正确性.如确认,交费–>移交原介质及已恢复数据 –>出具发

mysql的数据恢复

转载自:http://ourmysql.com/archives/1293 数据库数据被误删除是经常看到的事情,数据的恢复也就自然成为了DBA很重要的一门基本功夫,比较笨拙的办法是拉出历史的备份到另外的一台机器恢复出来,但是这种方法如果数据量比较大的话,往往会耗费较长的时间,以前在使用oracle的时候,提供了很多数据恢复的办法,常用的办法就是采用闪回flashback,或者通过logmnr在分析日志完成数据的恢复,但是在mysql中,数据的恢复变成了很困难的一件事情. 上周一同事的数据库就由于

数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据,解决图片恢复后打不开的问题

数据恢复软件使用经验-支持U盘,手机SD卡,硬盘数据,解决图片恢复后打不开的问题. 用过很多数据恢复软件,最早EasyRecovery pro,恢复过U盘,手机SD卡,硬盘数据.但现在下载不了最新版,而且BAIDU出来的都是国产收费软件假冒的,因为国产恢复软件都太差劲了,所以想偷梁换柱,不仅要收费,而且网上评论恢复效果也很差. 后来用过两款国外crack版的recuva和FinalData,效果也不错,但是有几次帮朋友恢复手机sd卡的时候,照片图片恢复后很多,打不开也不能预览.研究了很长时间,和