C#中怎样随时判断文件夹中生成的新文件?
一个文件夹中存放每隔6分钟生成的新文件,怎样判断哪个文件是新生成的并复制到另外一个文件夹中存放,谢谢!...
一个文件夹中存放每隔6分钟生成的新文件,怎样判断哪个文件是新生成的并复制到另外一个文件夹中存放,谢谢!
展开
5个回答
展开全部
using System;using System.Collections.Generic;using System.IO;using System.Linq; namespace ConsoleApplication1{ //自定义一个类 public class FileTimeInfo { public string FileName; //文件名 public DateTime FileCreateTime; //创建时间 } class Program { static void Main(string[] args) { //使用 GetLatestFileTimeInfo //获取d:\test文件中,扩展名为.txt的最新文件 FileTimeInfo fi = GetLatestFileTimeInfo(@"d:\Test", ".txt"); if (fi != null) { Console.WriteLine("文件名:{0} 创建时间:{1}", fi.FileName, fi.FileCreateTime); } else { Console.WriteLine("文件夹中没有指定扩展名的文件!"); } } //获取最近创建的文件名和创建时间 //如果没有指定类型的文件,返回null static FileTimeInfo GetLatestFileTimeInfo(string dir, string ext) { List<FileTimeInfo> list = new List<FileTimeInfo>(); DirectoryInfo d = new DirectoryInfo(dir); foreach (FileInfo fi in d.GetFiles()) { if (fi.Extension.ToUpper() == ext.ToUpper()) { list.Add(new FileTimeInfo() { FileName = fi.FullName, FileCreateTime = fi.CreationTime }); } } var qry = from x in list orderby x.FileCreateTime select x; return qry.LastOrDefault(); } }} ---
请留意上面代码中的 GetLatestFileTimeInfo( ) 方法!
请留意上面代码中的 GetLatestFileTimeInfo( ) 方法!
展开全部
每个人有每个人写程序的思路,也没必要去参考别人的。
可以用一个集合保存之前所有的文件。然后过六秒再次扫描文件夹中所有文件。
也主要是用IO;
把之前的集合和之后扫描的集合进行对比,就知道那些文件名是多出来的了,然后就可以拷贝到别的目录下。
System.IO.Directory.GetFiles(path);查看目录中的所有文件。
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.CopyTo(path);拷贝
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.Delete();//删除
希望对你有帮助,用自己的思维去想,会让自己的技术更进一步。
可以用一个集合保存之前所有的文件。然后过六秒再次扫描文件夹中所有文件。
也主要是用IO;
把之前的集合和之后扫描的集合进行对比,就知道那些文件名是多出来的了,然后就可以拷贝到别的目录下。
System.IO.Directory.GetFiles(path);查看目录中的所有文件。
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.CopyTo(path);拷贝
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.Delete();//删除
希望对你有帮助,用自己的思维去想,会让自己的技术更进一步。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用一个集合保存之前所有的文件。然后过六秒再次扫描文件夹中所有文件。
也主要是用IO;
把之前的集合和之后扫描的集合进行对比,就知道那些文件名是多出来的了,然后就可以拷贝到别的目录下。
System.IO.Directory.GetFiles(path);查看目录中的所有文件。
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.CopyTo(path);拷贝
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.Delete();//删除
也主要是用IO;
把之前的集合和之后扫描的集合进行对比,就知道那些文件名是多出来的了,然后就可以拷贝到别的目录下。
System.IO.Directory.GetFiles(path);查看目录中的所有文件。
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.CopyTo(path);拷贝
System.IO.FileInfo file = new System.IO.FileInfo(oldpath); file.Delete();//删除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.IO.FileSystemWatcher fs = new FileSystemWatcher("D:\\");//监视目录
fs.Created += new FileSystemEventHandler(fs_Created);//监视创建
fs.EnableRaisingEvents = true;//启动监视
void fs_Created(object sender, FileSystemEventArgs e)
{
//逻辑内容
File.Copy(“”,“”);//文件复制
}
fs.Created += new FileSystemEventHandler(fs_Created);//监视创建
fs.EnableRaisingEvents = true;//启动监视
void fs_Created(object sender, FileSystemEventArgs e)
{
//逻辑内容
File.Copy(“”,“”);//文件复制
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
System.IO.FileSystemWatcher
参考资料: http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/6ec4b09e-da13-4aea-95db-b3e822fc6b5b/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询