【问题标题】:Why I can't read subdir with my recursive code为什么我的递归代码无法读取 subdir
【发布时间】:2020-02-16 16:03:57
【问题描述】:

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); }

【问题讨论】:

  • 当外部资源消失或修复时,依赖于外部资源的问题变得毫无用处。
  • 抛出异常时_selectedDir准确值是多少?

标签: c# asp.net .net c#-4.0


【解决方案1】:

检查工作目录的类型。实际代码(您从中发送图片的代码)与您发布的代码略有不同。图中是这样的:

foreach (var _selectedDir in targetDir)

所以有 var 而不是 string,那么我们就不能确定 _selectedDir 实际上是一个字符串。例如,它可以包含会产生类似错误的对象。如果您修复它以使上述行与您发布的行相似并且您在运行时收到 InvalidCastException ,那么我很确定这就是问题所在。

【讨论】:

    猜你喜欢
    • 2021-03-11
    • 1970-01-01
    • 1970-01-01
    • 2019-04-23
    • 2013-05-15
    • 2020-06-11
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多