我正在使用 c++ cli。我正在尝试扫描文件以查看它们是否已由 pe 打包程序打包。
这是问题所在
如果我将我的代码不在 try 块中,它将扫描任何 20mb 或更大的文件,但问题是如果文件是系统文件(如 ntuser.dat),它会给我一个错误,无法访问该文件。这很好,因为我不需要像那样扫描文件,所以我将代码放在 try 块中以消除该错误。现在的问题是,当它到达那个 20mb 的文件时,它会跳过它而不是扫描它。我不知道为什么 try 块让它跳过大文件。它不会跳过文件的唯一方法是如果大文件是要扫描的第一个文件,但这没用,因为它将扫描多个大文件。
这是代码
try
{
FileStream^ fs2 = gcnew FileStream(line, FileMode::Open, FileAccess::Read, FileShare::ReadWrite);
BinaryReader^ br = gcnew BinaryReader(fs2);
array<Byte>^writeArray = br->ReadBytes(br->BaseStream->Length);
fs2->Close();
String^ datafile = BitConverter::ToString(writeArray);
datafile = datafile->Replace("-","");
if (datafile->Contains("55505830")) {
listBox1->Items->Add(line);
}
}
catch (...)
{
}
我没有将循环部分放在它从文本文件中读取下一个文件的位置,因为那部分很好。
那么如何让它扫描大文件并忽略系统文件。
我是否需要更改捕获异常。
谢谢你