📄 cnfileop.cpp
字号:
//---------------------------------------------------------------------------
#include <windows.h>
#pragma hdrstop
#include "CNFileOP.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
HANDLE FileOpen(const TCNString FileName, DWORD Mode)
{
DWORD AccessMode[3] = {
GENERIC_READ,
GENERIC_WRITE,
GENERIC_READ | GENERIC_WRITE};
DWORD ShareMode[5] = {
0,
0,
FILE_SHARE_READ,
FILE_SHARE_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE};
return CreateFile(FileName.c_str(),
AccessMode[Mode & 3],
ShareMode[(Mode & 0xF0) >> 4],
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, 0);
}
HANDLE FileCreate(const TCNString FileName)
{
return CreateFile(FileName.c_str(),
GENERIC_READ | GENERIC_WRITE,
0, NULL, CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, 0);
}
long FileRead(HANDLE Handle, void *Buffer,DWORD Count)
{
long Result;
if( !ReadFile(Handle, Buffer, Count, &(DWORD)Result, NULL))
{
Result = -1;
}
return Result;
}
long FileWrite(HANDLE Handle,void *Buffer,DWORD Count)
{
long Result;
if( !WriteFile(Handle, Buffer, Count, &(DWORD)Result, NULL))
{
Result = -1;
}
return Result;
}
DWORD FileSeek(HANDLE Handle, int Offset, int Origin)
{
return SetFilePointer(Handle, Offset,NULL, Origin);
}
void FileClose(HANDLE Handle)
{
CloseHandle(Handle);
}
long FileAge(const TCNString FileName)
{
HANDLE Handle;
WIN32_FIND_DATA FindData;
FILETIME LocalFileTime;
long Result;
WORD Date,Time;
Handle = FindFirstFile(FileName.c_str(), &FindData);
if (Handle != INVALID_HANDLE_VALUE)
{
FindClose(Handle);
if ((FindData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0 )
{
FileTimeToLocalFileTime(&FindData.ftLastWriteTime, &LocalFileTime);
if (FileTimeToDosDateTime(&LocalFileTime, &Date,&Time))
{
Result = Date << 16 | Time;
return Result;
}
}
}
Result = -1;
return Result;
}
BOOL FileExists(const TCNString FileName)
{
return (FileAge(FileName) != -1);
}
int FileGetDate(HANDLE Handle)
{
FILETIME FileTime, LocalFileTime;
WORD Date,Time;
if (GetFileTime(Handle, NULL, NULL, &FileTime) &&
FileTimeToLocalFileTime(&FileTime, &LocalFileTime)&&
FileTimeToDosDateTime(&LocalFileTime, &Date,&Time))
{
return Date << 16 | Time;
}
return -1;
}
DWORD FileSetDate(HANDLE Handle, DWORD Age)
{
FILETIME LocalFileTime, FileTime;
WORD Date,Time;
if (DosDateTimeToFileTime(((Age >> 16) & 0xffff),(Age & 0xffff), &LocalFileTime) &&
LocalFileTimeToFileTime(&LocalFileTime, &FileTime) &&
SetFileTime(Handle, NULL, NULL, &FileTime))
{
return 0;
}
return GetLastError();
}
DWORD FileGetAttr(const TCNString FileName)
{
return GetFileAttributes(FileName.c_str());
}
DWORD FileSetAttr(const TCNString FileName,DWORD Attr)
{
if (!SetFileAttributes(FileName.c_str(), Attr))
{
return GetLastError();
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -