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