在c#中显示/查找打开的文件路径

时间:2009-05-22 06:07:15

标签: c#

我想编写一个程序,当我打开文件并查看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#中编写程序?

4 个答案:

答案 0 :(得分:1)

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

答案 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的使用示例如下

http://www.c-sharpcorner.com/UploadFile/mokhtarb2005/FSWatcherDesMA12052005072341AM/FSWatcherDesMA.aspx