![](/img/trans.png)
[英]C# Cannot Implicitly Convert type 'System.IO.FileInfo' to 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.