从C#中每天都在变化的文件中读取

时间:2011-03-30 08:31:07

标签: c# file-io

我希望自动化一个程序来读取文件,处理它然后将其写入新文件。问题是每天都有新文件,内容相似,输入文件和输出文件名每天都会更改。文件名将采用以下格式:SAPHR_Joiners_20110323。正如你所看到的那样,名字的第一部分将是不变的,但日期将是独一无二的......我怎么能这样做?

非常感谢你们

4 个答案:

答案 0 :(得分:2)

如果您想阅读文件夹中的最新文件,可以使用System.IO.File.GetCreationTime

查询创建的日期

在代码中:

string myFile = 
            Directory.GetFiles(@"C:\Temp")
            .OrderBy<String, DateTime>(file => File.GetCreationTime(file))
            .First();

但是,如果您知道文件名将遵循严格的命名约定,那么最好通过生成文件名来访问该文件,如其他答案所示。

答案 1 :(得分:1)

你不能只在程序中动态生成文件名,然后打开相应的文件吗?所以像这样:

string filename = "SAPHR_Joiners_" + DateTime.Now.ToString("yyyyMMdd");
string[] filecontents = File.ReadAllLines( filename );

答案 2 :(得分:0)

如果要提示重新启动,请使用FileSystemWatcher类查找新的传入文件,否则只需根据当前日期找到该文件。如果您还有其他问题,请告诉我们。

答案 3 :(得分:0)

回到VB6的时代,目前仍在使用的一种技术是folder monitoring

您可以检查文件夹是否包含文件,x每分钟x,或者在您的情况下,例如每天XX小时。

你可以从你的程序创建一个服务,这将确保它每次都运行(只要机器开启):)

那些日子,在VB6中,我们今天没有那么多,所以,为了观看特定文件类型的文件夹(或任何内容)*.*,您可以使用System.IO.FIleSystemWatcher (在该页面中的示例),并且要处理文件,只需使用System.IO.TextReader例如