| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | 
							- //---------------------------------------------------------------------------
 
- #include "stdafx.h"
 
- __int64 GetLength64(CFile &file)
 
- {
 
-   DWORD low;
 
-   DWORD high;
 
-   low=GetFileSize((void *)file.m_hFile, &high);
 
-   _int64 size=((_int64)high<<32)+low;
 
-   return size;
 
- }
 
- BOOL GetLength64(CString filename, _int64 &size)
 
- {
 
-   WIN32_FIND_DATA findFileData;
 
-   HANDLE hFind = FindFirstFile(filename, &findFileData);
 
-   if (hFind == INVALID_HANDLE_VALUE)
 
-     return FALSE;
 
-   DebugCheck(FindClose(hFind));
 
-   size=((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow;
 
-   return TRUE;
 
- }
 
- BOOL PASCAL GetStatus64(LPCTSTR lpszFileName, CFileStatus64& rStatus)
 
- {
 
-   WIN32_FIND_DATA findFileData;
 
-   HANDLE hFind = FindFirstFile((LPTSTR)lpszFileName, &findFileData);
 
-   if (hFind == INVALID_HANDLE_VALUE)
 
-   {
 
-     return FALSE;
 
-   }
 
-   DebugCheck(FindClose(hFind));
 
-   // strip attribute of NORMAL bit, our API doesn't have a "normal" bit.
 
-   rStatus.m_attribute = (BYTE)
 
-     (findFileData.dwFileAttributes & ~FILE_ATTRIBUTE_NORMAL);
 
-   rStatus.m_size = ((_int64)findFileData.nFileSizeHigh<<32)+findFileData.nFileSizeLow;
 
-   // convert times as appropriate
 
-   TRY
 
-   {
 
-     rStatus.m_ctime = CTime(findFileData.ftCreationTime);
 
-     rStatus.m_has_ctime = true;
 
-   }
 
-   CATCH_ALL(e)
 
-   {
 
-     rStatus.m_has_ctime = false;
 
-   }
 
-   END_CATCH_ALL;
 
-   TRY
 
-   {
 
-     rStatus.m_atime = CTime(findFileData.ftLastAccessTime);
 
-     rStatus.m_has_atime = true;
 
-   }
 
-   CATCH_ALL(e)
 
-   {
 
-     rStatus.m_has_atime = false;
 
-   }
 
-   END_CATCH_ALL;
 
-   TRY
 
-   {
 
-     rStatus.m_mtime = CTime(findFileData.ftLastWriteTime);
 
-     rStatus.m_has_mtime = true;
 
-   }
 
-   CATCH_ALL(e)
 
-   {
 
-     rStatus.m_has_mtime = false;
 
-   }
 
-   END_CATCH_ALL;
 
-   if (!rStatus.m_has_ctime || rStatus.m_ctime.GetTime() == 0)
 
-   {
 
-     if (rStatus.m_has_mtime)
 
-     {
 
-       rStatus.m_ctime = rStatus.m_mtime;
 
-       rStatus.m_has_ctime = true;
 
-     }
 
-     else
 
-       rStatus.m_has_ctime = false;
 
-   }
 
-   if (!rStatus.m_has_atime || rStatus.m_atime.GetTime() == 0)
 
-   {
 
-     if (rStatus.m_has_mtime)
 
-     {
 
-       rStatus.m_atime = rStatus.m_mtime;
 
-       rStatus.m_has_atime = true;
 
-     }
 
-     else
 
-       rStatus.m_has_atime = false;
 
-   }
 
-   if (!rStatus.m_has_mtime || rStatus.m_mtime.GetTime() == 0)
 
-   {
 
-     if (rStatus.m_has_ctime)
 
-     {
 
-       rStatus.m_mtime = rStatus.m_ctime;
 
-       rStatus.m_has_mtime = true;
 
-     }
 
-     else
 
-       rStatus.m_has_mtime = false;
 
-   }
 
-   return TRUE;
 
- }
 
 
  |