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

📄 procedurepath.cpp

📁 获得程序的路径
💻 CPP
字号:

//获得程序路径
void GetModulePath(CString &strPath)
{
	TCHAR drive[_MAX_DRIVE];
	TCHAR dir[_MAX_DIR];
	TCHAR fname[_MAX_FNAME];
	TCHAR ext[_MAX_EXT];
	TCHAR szPathName[MAX_PATH];

	if(GetModuleFileName(NULL, szPathName, MAX_PATH) ==0)
	{
		TRACE(_T("Get module file name error!"));
	}
	_tsplitpath(szPathName, drive, dir, fname, ext );
	strPath = drive;
	strPath += dir;
}


//创建目录,实现CreateDirectory函数不能创建子目录的功能
void CreateDir(LPCTSTR lpszPath)
{
	CString strPath(lpszPath);
	if(strPath.GetLength() < 3)
		return;
	if(strPath.Right(1) != _T("\\"))
	{
		strPath += _T("\\");
	}

	int iPos = -1;
	while((iPos = strPath.Find(_T("\\"),iPos + 1)) >= 0)
	{
		CString strDir((LPCTSTR)strPath, iPos);
		CreateDirectory((LPCTSTR)strDir,NULL);
	}
}

//linux下取得指定目录所在分区的使用信息
//statfs(...)也可以取得指定分区名称的使用信息

#define B(x,y)  (x)*(y.f_bsize/1024) 
//类似于 df -a
int getpathblocks(const char* path)
{
    int nret = 0;
    struct statfs st;
    if(statfs(path,&st) == -1)
    {
    	nret = -1; 
    }
    else
    {
    	printf("%-12s%12s%12s%12s\n","FilePath","1K-blocks","Used","Available");
    	printf("%-12s%12ld%12ld%12ld\n",path,B(st.f_blocks,st),B(st.f_blocks,st)-B(st.f_bfree,st),B(st.f_bavail,st));
    }
    return nret;
}
//类似于 df -i
int getpathinodes(const char* path)
{
    int nret = 0;
    struct statfs st;
    if(statfs(path,&st) == -1)
    {
    	nret = -1; 
    }
    else
    {
    	printf("%-12s%12s%12s%12s\n","FilePath","Inodes","IUsed","IFree");
    	printf("%-12s%12ld%12ld%12ld\n",path,st.f_files,st.f_files-st.f_ffree,st.f_ffree);
    }
    return nret;
} 

⌨️ 快捷键说明

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