📄 file_sys.cpp
字号:
#include "file_sys.h"
DWORD File_GetSize(const char* strFile)
{
FILE* fp = fopen(strFile, "rb");
if(!fp)
{
return 0;
}
fseek(fp, 0, SEEK_END);
DWORD dwRet = ftell(fp);
fclose(fp);
return dwRet;
}
void Path_RectifyPath(char* szDest, const char* szSrc)
{
if(szDest==NULL)
return;
if(szSrc==NULL)
{
if(szDest[0]=='\\' && szDest[1]!='\\')
strcpy(szDest, szDest+1);
}
else
{
if(szSrc[0]=='\\' && szSrc[1]!='\\')
strcpy(szDest, szSrc+1);
else
strcpy(szDest, szSrc);
}
int len = strlen(szDest);
if(szDest[len-1]=='\\')
szDest[len-1]=0;
szDest[len]=0;
szDest[len+1]=0;
}
void Path_GetPathFile(char* szDest, const char* szSrc)
{
if(szDest==NULL)
return;
char str[MAX_PATH];
Path_RectifyPath(str, szSrc);
char* sz = strrchr(str, '\\');
if(sz)
{
strcpy(szDest, sz+1);
}
else
{
strcpy(szDest, str);
}
int len = strlen(szDest);
szDest[len]=0;
szDest[len+1]=0;
}
void Path_GetParentPath(char* szDest, const char* szSrc)
{
if(szDest==NULL)
return;
Path_RectifyPath(szDest, szSrc);
int len = strlen(szDest);
char* sz = strrchr(szDest, '\\');
if(sz)
{
sz[0]=0;
sz[1]=0;
}
else
{
strcpy(szDest, "");
szDest[len]=0;
szDest[len+1]=0;
}
}
VOID Path_MakeFullPath(char* strDest, const char* szSrc)
{
if(strDest==NULL)
return;
char strTemp[MAX_PATH];
if(szSrc!=NULL)
{
strcpy(strTemp, szSrc);
}
else
{
strcpy(strTemp, strDest);
}
if(Path_IsSysPath(strTemp))
{
strcpy(strDest, strTemp);
}
else
{
Path_RectifyPath(strTemp);
char temp_path[MAX_PATH];
::GetCurrentDirectory(MAX_PATH, temp_path);
Path_RectifyPath(temp_path);
sprintf(strDest, "%s\\%s", temp_path, strTemp);
}
Path_RectifyPath(strDest);
}
BOOL Path_IsSysPath(LPCSTR strPath)
{
if(NULL == strPath || strlen(strPath)<2 || strPath[0]==':')
return FALSE;
if(NULL!=strchr(strPath, ':')
|| (strPath[0]=='\\' && strPath[1]=='\\'))
{
return TRUE;
}
return FALSE;
}
BOOL Path_MakeDir(const char* strDir)
{
if(CreateDirectory(strDir, NULL)==TRUE)
{
return TRUE;
}
else
{
char str[MAX_PATH];
Path_GetParentPath(str, strDir);
if(str[0]==0)
return FALSE;
if(Path_MakeDir(str)==FALSE)
return FALSE;
return CreateDirectory(strDir, NULL);
}
}
FILE* File_MakeFile(const char* strFile, const char* mode)
{
FILE* fret=fopen(strFile, mode);
if(fret==NULL)
{
char str[MAX_PATH];
Path_GetParentPath(str, strFile);
Path_MakeDir(str);
return fopen(strFile, mode);
}
return fret;
}
BOOL File_CopyTo(const char *strFrom, const char *strTo)
{
char strDest[MAX_PATH];
Path_RectifyPath(strDest, strTo);
char strSrc[MAX_PATH];
Path_RectifyPath(strSrc, strFrom);
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;//g_pGsApp->GetMainWnd();
lpFileOp.wFunc=FO_COPY;
lpFileOp.pFrom=strSrc;
lpFileOp.pTo=strDest;
lpFileOp.fFlags=FOF_SILENT|FOF_NOCONFIRMATION;
lpFileOp.fAnyOperationsAborted=FALSE;
lpFileOp.hNameMappings =NULL;
lpFileOp.lpszProgressTitle =NULL;
return (0==SHFileOperation(&lpFileOp));
}
BOOL File_Rename(const char *strFrom, const char *strTo)
{
char strDest[MAX_PATH];
Path_RectifyPath(strDest, strTo);
char strSrc[MAX_PATH];
Path_RectifyPath(strSrc, strFrom);
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;//g_pGsApp->GetMainWnd();
lpFileOp.wFunc=FO_RENAME;
lpFileOp.pFrom=strSrc;
lpFileOp.pTo=strDest;
lpFileOp.fFlags=FOF_SILENT|FOF_NOCONFIRMATION;
lpFileOp.fAnyOperationsAborted=FALSE;
lpFileOp.hNameMappings =NULL;
lpFileOp.lpszProgressTitle =NULL;
return (0==SHFileOperation(&lpFileOp));
}
BOOL File_MoveTo(const char *strFrom, const char *strTo)
{
char strDest[MAX_PATH];
Path_RectifyPath(strDest, strTo);
char strSrc[MAX_PATH];
Path_RectifyPath(strSrc, strFrom);
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;//g_pGsApp->GetMainWnd();
lpFileOp.wFunc=FO_MOVE;
lpFileOp.pFrom=strSrc;
lpFileOp.pTo=strDest;
lpFileOp.fFlags=FOF_SILENT|FOF_NOCONFIRMATION;
lpFileOp.fAnyOperationsAborted=FALSE;
lpFileOp.hNameMappings =NULL;
lpFileOp.lpszProgressTitle =NULL;
return (0==SHFileOperation(&lpFileOp));
}
BOOL File_Delete(const char *str)
{
char strDesc[MAX_PATH];
Path_RectifyPath(strDesc, str);
if(str[0]==0)
return FALSE;
SHFILEOPSTRUCT lpFileOp;
lpFileOp.hwnd=NULL;//g_pGsApp->GetMainWnd();
lpFileOp.wFunc=FO_DELETE;
lpFileOp.pFrom=strDesc;
lpFileOp.pTo=NULL;
lpFileOp.fFlags=FOF_SILENT|FOF_NOCONFIRMATION;
lpFileOp.fAnyOperationsAborted=FALSE;
lpFileOp.hNameMappings =NULL;
lpFileOp.lpszProgressTitle =NULL;
return (0==SHFileOperation(&lpFileOp));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -