磁盘上所有文件的C#列表 - 错误CS1503参数2:无法从'System.Collections.Generic.IEnumerable <string>'转换为'string []'

时间:2016-12-07 10:12:56

标签: c# string exception type-conversion

早上好!

我的程序有点问题。这个程序应该列出C:盘上的所有文件,但它会抛出以下例外:

Severity    Code    Description Project File    Line    Suppression State
Error   CS1503  Argument 2: cannot convert from 'System.Collections.Generic.IEnumerable<string>' to 'string[]'  ConsoleApplication2 c:\users\aleš\documents\visual studio 2015\Projects\ConsoleApplication2\ConsoleApplication2\Program.cs  15  Active

拜托,你能帮助我吗?这不是我的代码所以我真的不知道如何处理它。

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Permissions;
using System.Text;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            var paths = Traverse(@"C:\");
            File.WriteAllLines(@"C:\\test.txt", paths);
        }

        private static IEnumerable<string> Traverse(string rootDirectory)
        {
            IEnumerable<string> files = Enumerable.Empty<string>();
            IEnumerable<string> directories = Enumerable.Empty<string>();
            try
            {
                // The test for UnauthorizedAccessException.
                var permission = new FileIOPermission(FileIOPermissionAccess.PathDiscovery, rootDirectory);
                permission.Demand();

                files = Directory.GetFiles(rootDirectory);
                directories = Directory.GetDirectories(rootDirectory);
            }
            catch
            {
                // Ignore folder (access denied).
                rootDirectory = null;
            }

            if (rootDirectory != null)
                yield return rootDirectory;

            foreach (var file in files)
            {
                yield return file;
            }

            // Recursive call for SelectMany.
            var subdirectoryItems = directories.SelectMany(Traverse);
            foreach (var result in subdirectoryItems)
            {
                yield return result;
            }
        }
    }
}

非常感谢你! 带着敬意, ALES

0 个答案:

没有答案