2009-05-22 47 views
0

我想为打开文件并查看e:\ test \ test.doc中的文件编写一个程序,然后我想在单独的文件文件跟踪中显示路径。文本。在c中显示/查找打开的文件路径#

如果我打开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

你不确定哪一点?打开/写入文件的代码?你的程序应该采用的设计/步骤?这是用于控制台应用程序还是winforms? – mundeep 2009-05-22 06:13:37

回答

1

很快...... 你可以使用opendialog modalbox并且可以将路径保存为opendialogObject.path和DateTime.Now()的当前时间部分,并且可以将其显示出来。 对不起,如果不帮助

0

using System.IO;

路径字符串= “E:\测试\ test.txt的”

//保存路径字符串

的FileStream文件=新的FileStream(路径的FileMode,FileAccess的); //打开Test.doc的文件

//执行文件操作

file.Close();

//打开路径文件

的FileStream pathfile =新的FileStream( “filetracing.txt” 的FileMode,FileAccess的);

StreamWriter sw = new StreamWriter(pathfile);

sw.Write(path); //路径字符串将写入您的文件tracing.txt中

sw.Close(); pathfile.Close();

1

您的意思是说您希望应用程序在访问c:\上的任何文件时写入日志文件

如果是这样,那么有一个涉及System.IO.FileSystemWatcher类的可能解决方案。 (我链接到MSDN文档,但由于我是新来的,我也不能)

FileSystemWatcher类更意在观看了改变到文件系统,而不是任何直接的文件系统访问。 因此,使用此解决方案仅限于观察对LastAccessed所做的更改 - 并非总是进行更新,因此应严格审核原因。

这里有一个快速的代码使用FileSystemWatcher的监视上次访问的变化证明:

 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属性更新事件 - 包括文件创建和修改。

  • 如果您登录到您正在监控的同一个驱动器,您将获得自己的写入事件 - 所以不要忘记对它们进行过滤。