c#通过定时器实时抓取一个文件夹下的所有txt文件和新生成的txt文件,如果有新生成的txt文件,判断这个文件是只读还是可编辑文件,如果是可编辑文件,就在txt文件头部添加信息,然后转为csv格式,保存到另一个文件夹中

时间: 2023-06-12 08:08:17 浏览: 41
你可以使用System.IO.FileSystemWatcher类来监视文件夹中的更改,使用System.IO.File类来处理文件的读写操作,使用System.Timers.Timer类来定时执行任务。以下是示例代码: ```csharp using System; using System.IO; using System.Timers; namespace FileWatcher { class Program { static void Main(string[] args) { string sourceFolder = @"C:\SourceFolder"; // 源文件夹路径 string targetFolder = @"C:\TargetFolder"; // 目标文件夹路径 FileSystemWatcher watcher = new FileSystemWatcher(sourceFolder); watcher.Filter = "*.txt"; // 监视txt文件 watcher.IncludeSubdirectories = true; watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite | NotifyFilters.CreationTime; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.Created += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; Timer timer = new Timer(10000); // 每10秒执行一次任务 timer.Elapsed += new ElapsedEventHandler(OnTimerElapsed); timer.Start(); Console.WriteLine("Press any key to exit..."); Console.ReadKey(); } static void OnChanged(object sender, FileSystemEventArgs e) { if (e.ChangeType == WatcherChangeTypes.Created) { string filePath = e.FullPath; FileInfo fileInfo = new FileInfo(filePath); if ((fileInfo.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { Console.WriteLine("File {0} is read-only.", filePath); } else { Console.WriteLine("File {0} is editable.", filePath); string content = File.ReadAllText(filePath); string newContent = "Your header information" + Environment.NewLine + content; string csvContent = newContent.Replace("\t", ","); // 将文本内容转为csv格式 string csvFilePath = Path.Combine(targetFolder, Path.GetFileNameWithoutExtension(filePath) + ".csv"); File.WriteAllText(csvFilePath, csvContent); } } } static void OnTimerElapsed(object sender, ElapsedEventArgs e) { Console.WriteLine("Timer elapsed."); } } } ``` 在上面的代码中,我们使用FileSystemWatcher类来监视源文件夹中的txt文件的更改,当有新文件生成时,判断该文件是否为只读文件,如果是可编辑文件,则在文件头部添加信息,并将其转为csv格式,保存到目标文件夹中。使用Timer类来定时执行任务,这里设置为每10秒执行一次。

相关推荐

最新推荐

recommend-type

C#读写txt文件的2种方法

主要为大家详细介绍了C#读写txt文本文档数据的2种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

C# 遍历文件夹子目录下所有图片及遍历文件夹下的文件

在上个项目开发中遇到这样的需求,取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径。下面小编给大家分享C# 遍历文件夹子目录下所有图片及遍历文件夹下的文件,一起看看吧
recommend-type

c#使用Dataset读取XML文件动态生成菜单的方法

主要介绍了c#使用Dataset读取XML文件动态生成菜单的方法,涉及C#使用Dataset操作XML文件的相关技巧,需要的朋友可以参考下
recommend-type

C#实现获取文本文件的编码的一个类(区分GB2312和UTF8)

主要介绍了C#实现获取文本文件的编码一个类,本文给出类可以自动区分GB2312和UTF8,并同时给出了使用方法,需要的朋友可以参考下
recommend-type

C#基于NPOI生成具有精确列宽行高的Excel文件的方法

主要介绍了C#基于NPOI生成具有精确列宽行高的Excel文件的方法,是C#项目开发中非常实用的技巧,需要的朋友可以参考下
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

hive中 的Metastore

Hive中的Metastore是一个关键的组件,它用于存储和管理Hive中的元数据。这些元数据包括表名、列名、表的数据类型、分区信息、表的存储位置等信息。Hive的查询和分析都需要Metastore来管理和访问这些元数据。 Metastore可以使用不同的后端存储来存储元数据,例如MySQL、PostgreSQL、Oracle等关系型数据库,或者Hadoop分布式文件系统中的HDFS。Metastore还提供了API,使得开发人员可以通过编程方式访问元数据。 Metastore的另一个重要功能是跟踪表的版本和历史。当用户对表进行更改时,Metastore会记录这些更改,并且可以让用户回滚到
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。