문제

FileInfo 객체를 만들 때마다 마지막으로 AccessTime 속성에 액세스 할 때마다 항상 몇 분이 걸립니다. 파일 속성 창은 일정하게 유지되지만 응용 프로그램은 일반적으로 속성 창 시간 후 몇 분 후에 나타납니다.

또한 파일을 CMD 창으로 드래그하여 파일 이름을 인수로 전달하면 액세스 시간이 대부분의 시간을 업데이트하지만 항상 그런 것은 아닙니다.

이것을 일으킬 수있는 것은 무엇입니까?

아래는 예입니다.

static void Main(string[] args)
{
    if (args.Length > 0)
    {
        FileInfo fi = new FileInfo(args[0].ToString());
        Console.WriteLine(args[0]);
        if (fi.Exists)
        {
            Console.Write("Current: " + DateTime.Now + "\n");
            Console.Write("LAT: " + fi.LastAccessTime + "\n");
            Console.Write("LWT: " + fi.LastWriteTime + "\n");
            Console.Write("CT: " + fi.CreationTime + "\n");
        }
        Console.ReadKey();
    }
}

Alt Text http://img407.imageshack.us/img407/4728/propertiesox6.png Alt Text http://img380.imageshack.us/img380/7752/appgt0.png

도움이 되었습니까?

해결책

내 경험상, 마지막 액세스 시간은 악명 높은 신뢰할 수없는 것입니다. 에 따르면 http://technet.microsoft.com/en-us/library/cc781134.aspx...

NTFS는 마지막 액세스 시간 업데이트를 디스크로 업데이트하기 전에 1 시간 간격을 찾기 때문에 디스크의 마지막 액세스 시간은 항상 최신이 아닙니다. 또한 NTFS는 또한 사용자 나 프로그램이 폴더의 내용을 나열하거나 폴더의 파일을 읽는 (변경하지 않음)와 같은 파일 또는 폴더에서 읽기 전용 작업을 수행 할 때 디스크에 마지막 액세스 시간을 쓰기는 것을 지연시킵니다.

분명히, 메모리 내 사본은 정확하지만, 내 경험상, 당신은 캐시 된 값을 얻을 수 있습니다. 또한 마지막 액세스 시간은 사용자가 꺼질 수 있으며 Vista 및 2008에서 기본적으로 꺼져 있습니다.

다른 팁

파일 시간에 대한 기본 정보가 포함 된 MSDN 기사 파일 시간 해상도 및 마지막 액세스 시간에 대해 말할 수 있습니다.

예를 들어, 지방의 경우, Create Time의 해상도는 10 밀리 초이며, 쓰기 시간의 해상도는 2 초이며 액세스 시간은 1 일 (실제로 액세스 날짜)입니다. NTFS는 마지막 액세스 후 최대 1 시간까지 파일의 마지막 액세스 시간에 대한 업데이트를 지연시킵니다.

이것은 지방과 NTF 모두에서 마지막 쓰기 시간이 일반적으로 정확하지 않지만 정확한 값이 정확한지 확실하지 않다는 것을 의미합니다.

흠, 아마도 이것은 MSDN에서 나온 것입니다:

처음으로 호출되면 FilesystemInfo는 새로 고침을 호출하고 API에 대한 캐시 된 정보를 반환하여 속성 등을 얻습니다. 후속 통화에서 최신 정보 사본을 얻으려면 새로 고침에 전화해야합니다.

그러나 당신은 [미래 | 과거]에서 위도가 항상 몇 분이되는 것을보고 있습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top