⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filetime.cpp

📁 This software performs code conversion of Chinese characters, including GB2312/GBK and BIG5. It a
💻 CPP
字号:
// filetime.cpp

#include <windows.h>
#include <string.h>
#include "msc.h"
#include "filename.h"
#include "filetime.h"



//////////////////////////////
//          ANSI斉          //
//////////////////////////////



// 僼傽僀儖僞僀儉傪庢摼偡傞乮ANSI斉乯
// 俁偮偺堷偒悢偺偆偪昁梫偺側偄傕偺偼 NULL 偱傕壜
// 惉岟偟偨傜 0, 幐攕偟偨傜 0 埲奜傪曉偡
int GetFileTimeExA ( const char *szFileName, FILETIME *pCreationTime, FILETIME *pLastAccessTime, FILETIME *pLastWriteTime ) {

   const char *szString = GetFileNameA ( szFileName ) ;
   if ( szString && ( strchr ( szString, '?' ) || strchr ( szString, '*' ) ) ) return 1 ;

   WIN32_FIND_DATAA FindData ;

   HANDLE hFindFile = FindFirstFileA ( szFileName, & FindData ) ;
   if ( hFindFile == INVALID_HANDLE_VALUE ) return 1 ;
   FindClose ( hFindFile ) ;

   if ( pCreationTime ) *pCreationTime = FindData.ftCreationTime ;
   if ( pLastAccessTime ) *pLastAccessTime = FindData.ftLastAccessTime ;
   if ( pLastWriteTime ) *pLastWriteTime = FindData.ftLastWriteTime ;

   return 0 ;
}



// 僼傽僀儖僞僀儉傪愝掕偡傞乮ANSI斉乯
// 惉岟偟偨傜 1, 幐攕偟偨傜 0 傪曉偡
int SetFileTimeExA ( const char *szFileName, const FILETIME *pCreationTime, const FILETIME *pLastAccessTime, const FILETIME *pLastWriteTime ) {

   HANDLE hFile = CreateFileA ( szFileName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) ;
   if ( hFile == INVALID_HANDLE_VALUE ) return 1 ;
   int nResult = SetFileTime ( hFile, pCreationTime, pLastAccessTime, pLastWriteTime ) ;
   CloseHandle ( hFile ) ;

   return ! nResult ;
}



//////////////////////////////
//         UNICODE斉        //
//////////////////////////////



// 僼傽僀儖僞僀儉傪庢摼偡傞乮UNICODE斉乯
// 俁偮偺堷偒悢偺偆偪昁梫偺側偄傕偺偼 NULL 偱傕壜
// 惉岟偟偨傜 0, 幐攕偟偨傜 0 埲奜傪曉偡
int GetFileTimeExW ( const wchar_t *szFileName, FILETIME *pCreationTime, FILETIME *pLastAccessTime, FILETIME *pLastWriteTime ) {

   const wchar_t *szString = GetFileNameW ( szFileName ) ;
   if ( szString && ( wcschr ( szString, '?' ) || wcschr ( szString, '*' ) ) ) return 1 ;

   WIN32_FIND_DATAW FindData ;

   HANDLE hFindFile = FindFirstFileW ( szFileName, & FindData ) ;
   if ( hFindFile == INVALID_HANDLE_VALUE ) return 1 ;
   FindClose ( hFindFile ) ;

   if ( pCreationTime ) *pCreationTime = FindData.ftCreationTime ;
   if ( pLastAccessTime ) *pLastAccessTime = FindData.ftLastAccessTime ;
   if ( pLastWriteTime ) *pLastWriteTime = FindData.ftLastWriteTime ;

   return 0 ;
}



// 僼傽僀儖僞僀儉傪愝掕偡傞乮UNICODE斉乯
// 俁偮偺堷偒悢偺偆偪昁梫偺側偄傕偺偼 NULL 偱傕壜
// 惉岟偟偨傜 0, 幐攕偟偨傜 0 埲奜傪曉偡
int SetFileTimeExW ( const wchar_t *szFileName, const FILETIME *pCreationTime, const FILETIME *pLastAccessTime, const FILETIME *pLastWriteTime ) {

   HANDLE hFile = CreateFileW ( szFileName, GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ) ;
   if ( hFile == INVALID_HANDLE_VALUE ) return 1 ;
   int nResult = SetFileTime ( hFile, pCreationTime, pLastAccessTime, pLastWriteTime ) ;
   CloseHandle ( hFile ) ;

   return ! nResult ;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -