This error showed up when i run my recursive to read all subdir i dont know how to solve this
这是我的递归代码
private void recursiveSubDir(dynamic workingdirectories)
{
var targetDir = workingdirectories;
foreach (string _selectedDir in targetDir)
{
var targetFile = Directory.GetFiles(_selectedDir);
foreach (var selectedFile in targetFile)
{
string enc_selectedFile = GetMD5FromFile(selectedFile);
string[] md5text = File.ReadAllLines("md5 encryptor.txt");
foreach (string md5textcheck in md5text)
{
if (enc_selectedFile.Contains(md5textcheck))
{
virus = virus + 1;
}
}
}
MessageBox.Show(_selectedDir);
recursiveSubDir(_selectedDir);
}
}
这就是我所说的递归
try{ string[] md5text = File.ReadAllLines("md5 encryptor.txt");
string[] files = Directory.GetFiles(lokdirek);
var dirs = Directory.GetDirectories(lokdirek, "*", SearchOption.TopDirectoryOnly).Where(d => !isexcluded(_excludeDirectories, d));
int directoryCount = System.IO.Directory.GetDirectories(lokdirek).Length;
recursiveSubDir(dirs); }
答案 0 :(得分:0)
检查工作目录的类型。实际代码(您发送图片的代码)与您发布的代码略有不同。图片中是这样:
foreach (var _selectedDir in targetDir)
因此有var而不是string,然后我们不确定_selectedDir实际上是字符串。它可以包含例如对象,这将产生类似的错误。如果您修复此问题,使上面的行与您发布的行相似,并且在运行时得到InvalidCastException,那么我很确定这就是问题所在。