具体代码详见我上传的资源:
https://download.csdn.net/download/skyksksksksks/87500892
相信经常玩C++的都知道,C++上如果只是简单地创建、复制、删除文件路径,
那是很容易的,有现成的函数,直接用就好了。
但是如果是以下的情况呢?你还能愉快地玩C++吗?
你已经有“D:\aaa\bbb\”路径,
但是你现在想用C++直接创建“D:\aaa\bbb\ccc\ddd\”路径,
好吧,不能直接实现。
同样的,你已经有“D:\aaa\bbb\”路径,
但是你现在想用C++直接将“D:\aaa\bbb\”路径以及子路径下所有文件复制到“D:\aaa\bbb2\”路径下,
好吧,同样不能直接实现。
同样的,你已经有“D:\aaa\bbb\”路径,
但是你现在想用C++直接将“D:\aaa\bbb\”路径以及子路径下所有文件全删除,
好吧,同样还是不能直接实现。
你会发现,只要出现了多级路径,用C++函数都是不能直接实现的,
到这里是不是已经快要想砸电脑、换编程语言了,别急。
其实这些都是可以通过一些逻辑处理来实现的,有时候需要用到递归调用。
当然如果觉得麻烦,也没事。
为了解决这种尴尬的问题,我索性自己写一个类,
将这些功能做到一个函数中,方便以后使用。
类中函数声明见下方:
/*
@param
ptszFilePath 文件路径
pv 窗体指针
@return
0 成功、-1 失败
*/
long GetPathOfBrowseForFolder(LPTSTR ptszFilePath, LPVOID pv);
/*
@param
ptszFilePath 文件路径
pctszFileTypeName 文件类型名
pctszFileTypeValue 文件类型值
@return
0 成功、-1 失败
*/
long GetPathOfFileDialog(LPTSTR ptszFilePath, LPCTSTR pctszFileTypeName = _T("Data Files (*.data)"), LPCTSTR pctszFileTypeValue = _T("*.data"));
/*
@param
ptszFilePath 文件路径
@return
0 成功、-1 失败
*/
long GetPathOfModuleFile(LPTSTR ptszFilePath);
/*
@param
ptszFilePath 文件路径
@return
0 成功、-1 失败
*/
long GetPathOfCurrentDirectory(LPTSTR ptszFilePath);
/*
@param
pctszFilePath 文件路径
@return
0 成功、-1 失败
*/
long ExplorerPath(LPCTSTR pctszFilePath);
/*
@param
ptszFilePath 文件路径
ptszDirectory 路径
ptszFileName 文件名
ptszSuffixName 后缀名
@return
0 成功、-1 失败
*/
long ParseAndCreatPath(LPTSTR ptszFilePath, LPTSTR ptszDirectory, LPTSTR ptszFileName, LPTSTR ptszSuffixName);
/*
@param
pctszDirectory 路径
@return
0 成功、-1 失败
*/
long IsDirectoryValid(LPCTSTR pctszDirectory);
/*
@param
pctszDirectory 路径
@return
0 成功、-1 失败
*/
long DeleteMultipleDirectory(LPCTSTR pctszDirectory);
/*
@param
pctszDirectory 路径
@return
0 成功、-1 失败
*/
long CreateMultipleDirectory(LPCTSTR pctszDirectory);
/*
@param
pctszDirectoryOfSour 源路径
pctszDirectoryOfDest 目标路径
@return
0 成功、-1 失败
*/
long CopyMultipleDirectory(LPCTSTR pctszDirectoryOfSour, LPCTSTR pctszDirectoryOfDest);