常用接口

//查找文件
void FindFile(LPCTSTR szPath)
{
TCHAR szFind[MAX_PATH] = {0};
TCHAR szFile[MAX_PATH] = {0};


    WIN32_FIND_DATA FindFileData;


    _tcscpy_s(szFind, MAX_PATH,  szPath);
_tcscat_s(szFind, MAX_PATH, _T("\\*.*"));


    HANDLE hFind = ::FindFirstFile(szFind, &FindFileData);


    if(INVALID_HANDLE_VALUE == hFind)
return;

while(TRUE)
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            if(FindFileData.cFileName[0] != _T('.'))
{
_tcscpy_s(szFile, MAX_PATH,  szPath);
                _tcscat_s(szFile, MAX_PATH, _T("\\"));
                _tcscat_s(szFile, MAX_PATH, FindFileData.cFileName);
                FindFile(szFile);
            }
        }
        else
        {
_tcscpy_s(szFile, MAX_PATH,  szPath);
_tcscat_s(szFile, MAX_PATH, _T("\\"));
_tcscat_s(szFile, MAX_PATH, FindFileData.cFileName);
        }
        if(!FindNextFile(hFind,&FindFileData))
            break;
    }
    FindClose(hFind); 

}


//获取文件图标
HICON GetFileIcon(LPCTSTR szFile)
{
SHFILEINFO sfi = {0}; 


SHGetFileInfo(szFile, FILE_ATTRIBUTE_NORMAL, &sfi, sizeof(sfi), SHGFI_ICON|SHGFI_LARGEICON|SHGFI_USEFILEATTRIBUTES);
return sfi.hIcon;
}


创建GUID值,把GUID格式化为字符串代码如下

LPCTSTR GetGuidString()
{
static TCHAR szGuid[128] = { 0 };
static      GUIDguid = { 0 };

::CoInitialize(NULL);
::CoCreateGuid(&guid);
_stprintf(szGuid, _T("%08X%04X%04x%02X%02X%02X%02X%02X%02X%02X%02X"),
guid.Data1,  guid.Data2,   guid.Data3 ,
guid.Data4[0],   guid.Data4[1],
guid.Data4[2],   guid.Data4[3],
guid.Data4[4],   guid.Data4[5],
guid.Data4[6],   guid.Data4[7] );
::CoUninitialize();
return szGuid;
}


//获取文件大小
UINT64 GetFileLenght(LPCTSTR szFileName)
{
WIN32_FIND_DATArFileInfo = { 0 };
LARGE_INTEGER rFileSize = { 0 };


HANDLE hFind = FindFirstFile(szFileName, &rFileInfo);
if(hFind != INVALID_HANDLE_VALUE){
rFileSize.LowPart = rFileInfo.nFileSizeLow;
rFileSize.HighPart = rFileInfo.nFileSizeHigh; 
FindClose(hFind);
}
return rFileSize.QuadPart;
}


//获取当前系统时区

int GetLocalZone()
{
TIME_ZONE_INFORMATION tzi = { 0 };
GetTimeZoneInformation(&tzi);
int nZone = tzi.Bias / -60;
return nZone;
}


//删除文件或者文件夹(文件夹下所有文件都会删除)
BOOL DeleteFolder(LPCTSTR pszPath)
{
int  nRet = 0;
int  nLen = 0;
int  nBufLen = 0;
TCHAR *  szBuffer = NULL;
SHFILEOPSTRUCT  rFileOp = { 0 };



ASSERT(pszPath != NULL);
nLen = _tcslen(pszPath);
nBufLen = sizeof(TCHAR)* (nLen + 2);
szBuffer = (TCHAR *)malloc(nBufLen);
if (szBuffer == NULL) return false;
_tcscpy_s(szBuffer, nLen + 2, pszPath);
szBuffer[nLen] = '\0';
szBuffer[nLen + 1] = '\0';//必须要加两个'\0'不然SHFileOperation会报错


rFileOp.fFlags = FOF_ALLOWUNDO |   //允许放回回收站
FOF_NOCONFIRMATION |  //不出现确认对话框
FOF_NOERRORUI; //不出现错误对话框
rFileOp.pFrom = szBuffer;
rFileOp.pTo = NULL;      //一定要是NULL
rFileOp.wFunc = FO_DELETE;    //删除操作
nRet = SHFileOperation(&rFileOp);
ASSERT(nRet == 0);
return nRet == 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值