c# - 如何转换 System.Collections.Generics.IENumerable串起来
问题描述
我想将从 Directory.EnumerateFiles 方法获得的变量转换为 string 。此变量包含一组文件夹的文件路径,其中包含 FileServer.config
var foundFiles = Directory.EnumerateFiles(rootDirectory, "fileserver.config",
SearchOption.AllDirectories);
var RepositoryName = Path.GetFileName(Path.GetDirectoryName(foundFiles));
这里的字符串 rootDirectory 是一个特定的路径
我有什么办法可以做到这一点?
根据我当前的实现,我在 foundFiles 变量下收到错误“无法将 System.Collections.Generics.IENumerable 转换为字符串”。
解决方案
我原来的答案
最初我以为您只希望有一个名为的文件fileserver.config
,并且您想要该文件的路径 - 这可以使用FirstOrDefault()
.
using System.Linq;
String firstFileMatch = Directory
.EnumerableFiles( rootDirectory, "fileserver.config" )
.FirstOrDefault();
if( firstFileMatch == null )
{
throw new FileNotFoundException();
}
return Path.GetDirectoryName( Path.GetDirectoryName( fileFirstMatch ) );
新答案
在后续评论中,您说您想打印所有文件 - 所以这也很简单,使用String.Join
:
using System.IO;
using System.Linq;
IEnumerable<String> fileNames = new DirectoryInfo( rootDirectoryPath )
.EnumerableFiles( "fileServer.config", SearchOption.AllDirectories )
.Select( fi => fi.Directory.FullName )
.Select( dirPath => dirPath.Substring( rootDirectoryPath.Length ) );
String allNames = String.Join( "\r\n\r\n", fileNames );
MessageBox.Show( allNames );
推荐阅读
- java - 使用 Gson 自定义 Json 序列化
- jquery - 固定侧边栏菜单不跳转到正确的位置
- java - 与集合和泛型相关的 Java 10 迁移问题
- python - 在大型 ZIP 文件中导入 Python 包
- c# - 从桌面客户端调用 Web API
- microsoft-teams - 如何在 ASP.NET 核心中验证从 Microsoft Teams 发送的消息有效负载?
- javascript - 使用 set-Attribute 设置 ng-pattern 不起作用
- html - 如何将html表单数据解析成文档
- angularjs - 如何解决 angularJs 可访问性中的断开链接?
- android - 可能未处理的 Promise Rejection (id:0) 错误:本机反应中的网络错误