繁体   English   中英

如何打开最后创建的文件(.txt)?

[英]How can I open the last file (.txt) that was created?

我有两个程序,一个程序当您单击一个按钮时创建一个.txt文件,并将这些文件命名为不同的名称,例如: "test1.txttest2.txttest3.txt ...等”。 (文件名不是连续的)。 另一个程序必须打开最后创建的文件,而知道哪个文件是最后一个的唯一方法是使用“数据已修改”过滤器。 因为这些文件是在特定文件夹内创建的(我使用Windows 7作为操作系统)。 如何打开由拳头程序创建的最后一个文件?

例:

test1.txt--- data modified: 08/03/2016 06:33am

test3.txt----data modified: 08/03/2016 06:35am

test4.txt----data modified: 08/03/2016 07:26am

test2.txt----data modified: 08/03/2016 09:35am 我想打开/读取此文件

我看到了很多“ FileSystemWatcher”工具的示例,但我确实知道如何比较“修改后的数据”。 还是存在另一种方法?

最简单,最可靠的方法是生成带有时间戳的文件名。 之后,当您开始阅读它们时,请分析图章并按所需顺序处理所有文件。

如果对您的设计可行,请不要依赖于文件的系统信息 ,因为这可能会导致您在某些计算机上误导您(取决于Windows版本,配置...)

File.GetLastWriteTime似乎正在返回“过期”值

    static void Main(string[] args)
    {
        var latestModifiedFile = GetLatestModifiedFile(@"Path here");
        Console.WriteLine(latestModifiedFile);
        System.Diagnostics.Process.Start(latestModifiedFile)
    }

    static string GetLatestModifiedFile(string directory)
    {
        var files = Directory.GetFiles(directory);
        return files.OrderBy(f => File.GetLastWriteTime(f)).LastOrDefault();
    }

并回答关于FileSystemWatcher的问题:

    static void Main(string[] args)
    {
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = @"Path here";
        watcher.NotifyFilter = NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        watcher.Filter = "*.txt";
        watcher.Created += new FileSystemEventHandler(OnCreated);
        watcher.EnableRaisingEvents = true;

        Console.Read();
    }

    static void OnCreated(object source, FileSystemEventArgs e)
    {
        Console.WriteLine("Created file: " + e.FullPath);
        System.Diagnostics.Process.Start(e.FullPath);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM