【问题标题】:Getting creation date and last access date of a text file获取文本文件的创建日期和最后访问日期
【发布时间】:2014-04-24 18:31:51
【问题描述】:

我正在尝试使用 .Net 提取文本文件的创建时间和上次访问时间。我编写了以下代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication3
{  
    class Program
    {
        static void Main()
        {
            FileInfo info = new FileInfo("C:\\file.txt");

            DateTime time = info.CreationTime;
            Console.WriteLine(time);

            time = info.LastAccessTime;
            Console.WriteLine(time);

            time = info.LastWriteTime;
            Console.WriteLine(time);
            Console.ReadLine();
        }
    }
}

输出

01-01-1601 5:30:00 01-01-1601 5:30:00 01-01-1601 5:30:00

我无法理解为什么它以这种方式给我输出以及它有什么问题? 应该怎么改?

【问题讨论】:

  • 你为什么在超级用户而不是 Stackoverflow 上发布编程问题?我将投票支持迁移,但我向您保证,由于质量低下,这个问题将被锁定。您似乎在期待一些不同的东西,但没有说明那是什么。
  • 低质量问题是什么意思?你能解决吗?
  • 是的;这是低质量的,你没有表明你的期望。是的;我看到它的那一刻就已经解决了。

标签: file text .net c#


【解决方案1】:

来自MSDN

如果 FileSystemInfo 对象中描述的文件不存在,则此属性将返回 1601 年 1 月 1 日午夜 12:00,协调世界时 (UTC),调整为本地时间。

所以我猜你是在东部时区,(格林威治标准时间 + 5.5 小时)基于上午 05:30 时间戳。

单步执行您的代码并确保该文件存在,并且运行该程序的用户可以访问该文件。

在尝试使用对象中的任何值之前始终检查 FileInfo.Exists()。

考虑在路径字符串前面放一个@ 例如:@"c:\file.txt"。 @ 将中止任何转义序列。

【讨论】:

  • 使用@"c:\file.txt" 没有帮助。请提出其他建议。
  • 您在评估值之前检查过 info.Exists() 吗?如果它返回 false,则您的问题是该文件不存在,或者访问它时存在权限问题。
【解决方案2】:
  • 文件可能不存在。首先检查文件是否存在,然后去 文件信息。
  • 当您使用路径时,请使用@"C:\folder\file.txt""C:\\folder\\file.txt"。不要试图将两者混为一谈。

很可能是上述原因之一。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    • 2014-06-08
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多