📄 filetime.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 + -