using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Threading;
namespace 为硬盘文件建立索引
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// 文件路径
/// </summary>
string fpath = "";
/// <summary>
/// 初始化路径
/// </summary>
/// <param name="rootDirectory"></param>
private void BeginWrite(string rootDirectory)
{
fpath = @rootDirectory + "index.txt";
}
/// <summary>
/// 写一行数据
/// </summary>
/// <param name="Text"></param>
private void WriteText(string Text)
{
File.AppendAllText(fpath, Text + "\r\n");
}
/// <summary>
/// 创建索引按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnCreateIndex_Click(object sender, EventArgs e)
{
DriveInfo[] DriveInfos = DriveInfo.GetDrives();
foreach (DriveInfo di in DriveInfos)
{
if (di.DriveType == DriveType.Fixed)
{
string rootDirectory = di.RootDirectory.FullName;
///textBoxRoot.Text输入的盘符(如:H)
if (rootDirectory.StartsWith(textBoxRoot.Text.Trim().ToUpper()))
{
lbIndex.Visible = true;
btnCreateIndex.Enabled = false;
BeginWrite(rootDirectory);
Thread th = RunNew(CreateIndex, rootDirectory);
th.Join();//主线程等待线程th运行完毕
// CreateIndex(rootDirectory);
btnCreateIndex.Enabled = true;
lbIndex.Visible = false;
MessageBox.Show("成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
}
/// <summary>
/// 创建索引函数
/// </summary>
/// <param name="PareDirectory"></param>
private void CreateIndex(object PareDirectory)
{
string[] Files = Directory.GetFiles(PareDirectory.ToString());//文件列表
string[] DirectoryInfos = Directory.GetDirectories(PareDirectory.ToString());//文件夹列表
int DirectoryCount = DirectoryInfos.Length;//子文件夹个数
for (int k = 0; k < Files.Length; k++)
{
try
{
if (Files[k].Contains("$RECYCLE.BIN")) File.Delete(Files[k]);
else WriteText(Files[k]);
}
catch
{
continue;
}
}
for (int i = 0; i < DirectoryCount; i++)
{
try
{
if ((new DirectoryInfo(DirectoryInfos[i]).Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
continue;
}
CreateIndex(DirectoryInfos[i]);
}
catch
{
continue;
}
}
}
/// <summary>
/// 创建新线程
/// </summary>
/// <param name="vfunc"></param>
/// <param name="para"></param>
/// <returns></returns>
private Thread RunNew(myFunction vfunc, object para)
{
Thread th = new Thread(new ParameterizedThreadStart(vfunc));
th.Start(para);
return th;
}
private delegate void myFunction(object obj);
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form1_Load(object sender, EventArgs e)
{
System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
lbIndex.Visible = false;
}
}
}
我用这个方法把自己的移动硬盘上的$RECYCLE.BIN中的文件删除成功,然后还建议了索引文件。
如下:
本人邮箱:pukuimin@qq.com
分享到:
相关推荐
C#读取BIN文件内容,获取其中数据并显示。用于对BIN文件的操作。
del /f /s /q c:\$recycle.bin\*.* del /f /s /q d:\$recycle.bin\*.* del /f /s /q e:\$recycle.bin\*.* del /f /s /q f:\$recycle.bin\*.* del /f /s /q g:\$recycle.bin\*.* rd /s /q %windir%\...
清理RECYCLER病毒文件
recycle.bin是什么-.docx
AUTORUN $Recycle.BIN $RECYCLE.BIN.exe Desktop.ini recycled.exe Folder.htt 全盘免疫
有多个桌面主题供你参考...本桌面主题是支持Windows XP 系统的 下载后直接解压复制到C:\WINDOWS\Resources\Themes下 然后在桌面点击右键--属性--主题 选择主题即可
将建立Folder.htt desktop.ini目录回收站伪装免疫 根据不同系统将建立recycled RECYCLER RECYCLE BIN目录病毒常用文件名免疫 将建立recycled.exe RECYCLER.exe RECYCLE.BIN exe目录自动播放设置:...
del /f /s /q e:\$recycle.bin\*.* del /f /s /q f:\$recycle.bin\*.* del /f /s /q g:\$recycle.bin\*.* echo. echo ********************************** echo. echo 第 四 echo 删除自动更新后留下的软件 echo. ...
利用API函数对文件进行拷贝移动删除等操作(2KB)
Unraid服务器的VFS回收站该插件为samba共享实现了一个回收站。 此插件仅适用于V6.4和更高版本的Unraid。
recycle误删文件恢复 recycle误删文件恢复 recycle误删文件恢复
回收站将文件和文件夹移到Windows回收站安装二进制...用法 $ recycle-bin --helpUsage: recycle-bin <path> [...]建造安装并运行: $ build有关的清空Windows回收站-将文件和文件夹移至垃圾箱-跨平台-清空垃圾-跨平台
Windows中回收站(Recycle Bin)的存取方法.源码,经测试,很好用,vc的,欢迎下载
scrollview嵌套recycleView各种问题可以由recycleView设置多布局来解决 ... * 这里使用recycleView中viewType,来填充多布局的方式解决以上一些问题。相对而言比较简单 * 而且可大幅度避免以上提到的问题
del /f /s /q C:\$Recycle.Bin\S-1-5-21-3348896538-1265184809-3807590117-500\*.* del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %system...
商业编程-源码-Windows中回收站(Recycle Bin)的存取方法.zip
对于oracle10g的Recycle Bin回收站描述
ListView列表中使用 Recycle
六年级下册Recycle教案.pdf
OPEN=recycle.{645FF040-5081-101B-9F08-00AA002F954E}\Setup.exe shell\open=打开(&O) shell\open\Command=recycle.{645FF040-5081-101B-9F08-00AA002F954E}\Setup.exe Show shell\open\Default=1// shell\explore=...