尝试使用linq查询同一文件夹中的许多文本文件

Meelfan Bmfp

我需要搜索包含csv文件的文件夹。我感兴趣的记录有3个字段:Rec,Country和Year。我的工作是搜索文件,看看是否有任何文件具有超过一年的记录。到目前为止,我下面的代码:

//从文件夹中获取每个文件。

 string startFolder = @"C:\MyFileFolder\";
    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
    IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*",
    System.IO.SearchOption.AllDirectories);
    var queryMatchingFiles =
            from file in fileList
            where (file.Extension == ".dat" || file.Extension == ".csv")
        select file;

然后我想出了这段代码来从每个文件中读取年份字段,并找到年份计数大于1的那些(计数部分未成功实现)

public  void GetFileData(string filesname, char sep)
    {
    using (StreamReader reader = new StreamReader(filesname))
    {
        var recs = (from line in reader.Lines(sep.ToString())
            let parts = line.Split(sep)
             select       parts[2]);
            }

在示例文件下面:

 REC,IE,2014

 REC,DE,2014

 REC,FR,2015

现在,我正在努力将这两个想法结合起来,以在单个查询中解决我的问题。该查询应列出那些已记录了一年以上的文件。

提前致谢

迈恩

遵循以下原则:

string startFolder = @"C:\MyFileFolder\";
    System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
    IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*",
    System.IO.SearchOption.AllDirectories);
    var fileData =
            from file in fileList
            where (file.Extension == ".dat" || file.Extension == ".csv")
        select GetFileData(file, ',')
;

public  string GetFileData(string filesname, char sep)
    {
       using (StreamReader reader = new StreamReader(filesname))
       {
        var recs = (from line in reader.Lines(sep.ToString())
            let parts = line.Split(sep)
             select       parts[2]);
        var multipleyears = recs.Distinct().Count();
        if(multipleyears > 1)
        return filename;
        }
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

即使文件位于同一文件夹(文本文件)中,程序也无法找到文件

在不同的动作脚本文件(在同一文件夹中)中使用ActionScript类

同一文件夹中的 Rust mod 文件与使用

使用 TS 自动导出同一文件夹中的所有组件

文件名来自同一文件夹中的其他文件

从与.jar文件位于同一文件夹中的文件读取

忽略同一文件夹中多个文件中的字符

从多个 php 文件更新同一文本文件中的一行

HTML无法识别同一文件夹中的JS文件

从ftp下载文件并保存在同一文件夹中

在同一文件夹中命名文件空间

正在读取同一文件夹中的文件-改进了吗?

是否可以从存在Azure功能的同一文件夹中读取文件

require()即使在同一文件夹中也不适用于文件

超链接到同一文件夹中的文件,EPPlus C#

从同一文件夹中的文件导入功能

Angular CLI在同一文件夹中创建文件错误

从同一文件夹中的JAR访问文件

mountPath会覆盖同一文件夹中的其余文件

Python模块无法识别同一文件夹中的文件

Google脚本始终将文件上传到同一文件夹中

备份同一文件夹中的文件时的Postfix日期时间

在同一文件夹中找不到可用的文件

如何在同一文件夹中重新加载().py文件?

从同一文件夹中打开文件但名称不同的优雅方式

使用nodeJS将文件添加到同一文件夹

如何通过同一文件夹中的.vbs文件运行.ps1文件?

如何使用Gulp解压缩同一文件夹中的多个文件

使用同一文件夹中的文件自动多次运行应用程序