繁体   English   中英

无法在 c# 中将 fileinfo[] 隐式转换为 string[]

[英]Cannot implicitly convert fileinfo[] to string[] in c#

我在 c# 中有这条线需要修改,目前工作正常

 string[] UploadFilesList = new DirectoryInfo(UploadFolder)
         .GetFiles()
         .Select(o => o.Name.Replace(".txt", ""))
         .ToArray();

我不是编写此代码的人。 我想做的不是用任何东西替换.txt。

所以我做了这个

string[] UploadFilesList = new DirectoryInfo(UploadFolder)
        .GetFiles()
        .Select(o => o)
        .ToArray();

但收到此错误

无法在 c# 中将 fileinfo[] 隐式转换为 string[]

我再次将代码更改为

string[] UploadFilesList = new DirectoryInfo(UploadFolder)
        .GetFiles()
        .ToArray();

但还是同样的错误,如何解决这个问题?

在您的第一个代码片段中,您正在选择每个文件的文件名,然后替换扩展名。

在您的第二个和第三个代码片段中,您从DirectoryInfo获取所有文件并尝试将其存储在string[]中,但是

DirectoryInfo().GetFiles()返回一个FileInfo类型的数组

由于这个原因,您会收到错误无法将 fileinfo[] 隐式转换为 string[]


如果您想要上传文件的名称数组,请在下面尝试,

string[] UploadFilesList = new DirectoryInfo(UploadFolder)
           .GetFiles()          //Provide list of files from given. directory
           .Select(x => x.Name) //Select only Name from each FileInfo. Do not replace an extension
           .ToArray();          //Convert to an array.

编译器告诉您您正在尝试将文件存储在一个字符串数组中,这是不可能的,要获取一个字符串数组,只需 select 名称属性而不是所有文件。

.select(o=>o.name).toArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM