我想编写一个程序,当我打开文件并查看e:\ test \ test.doc中的文件时,我想在单独的文件filetracing.txt中显示路径。
如果我在f:\ doc.pdf中打开文件,输出应为:
the file in "e:\test.doc" is opened on 2.30 am
the file in "f:\doc.pdf" is opened on 8.30 am like wise
如何在c#中编写程序?
答案 0 :(得分:1)
答案 1 :(得分:1)
您是否希望应用程序在访问c:\上的任何文件时写入日志文件?
如果是这样,那么可能有一个涉及System.IO.FileSystemWatcher类的解决方案。 (我将链接到MSDN文档,但由于我是新来的,我不能)
FileSystemWatcher类更适用于监视更改到文件系统,而不是任何直接文件系统访问。 因此,使用此解决方案,您只能观察LastAccessed的更改 - 这并不总是更新,因此应该依赖于严格的审计原因。
这是一段快速代码,用于演示如何使用FileSystemWatcher监视LastAccessed更改:
using (var w = new System.IO.FileSystemWatcher("c:\\"))
{
w.IncludeSubdirectories = true;
w.NotifyFilter = NotifyFilters.LastAccess;
w.Changed += (object sender, FileSystemEventArgs e) =>
{
Console.WriteLine("{0} {1} at {2}", Path.Combine(e.FullPath, e.Name), e.ChangeType, DateTime.Now);
};
w.EnableRaisingEvents = true;
Console.WriteLine("Press Enter to exit");
Console.Read();
}
注意:
当任何文件更新了LastAccessed属性时,它会获取事件 - 包括文件创建和修改。
如果您登录到您正在监控的同一个驱动器,您将获得自己的写入事件 - 所以不要忘记过滤它们。
答案 2 :(得分:0)
使用System.IO;
string path =“e:\ test \ test.txt”
//将您的路径保存在字符串中
FileStream file = new FileStream(path,FileMode,FileAccess); //打开test.doc文件
//执行文件操作
file.Close();
//打开路径文件
FileStream pathfile = new FileStream(“filetracing.txt”,FileMode,FileAccess);
StreamWriter sw = new StreamWriter(pathfile);
sw.Write(路径); //路径字符串将写入filetracing.txt
sw.Close(); pathfile.Close();
答案 3 :(得分:0)
您可以创建一个只能使用通知图标UI运行的小型监控应用程序,并实现FileSystemWatcher类来监视文件并在必要时引发记录事件
FileSystemWatcher的使用示例如下