由于项目的需要,从MFC转移到QT进行开发
首先要实现,MFC上的CString字符串操作要换成QString
将图片从一个文件拷贝到另一个文件夹, 以前是这样写的:
//void folderMove(CStringW origPath, CStringW goalPath)
//{
// SHFILEOPSTRUCT fop;
// ZeroMemory(&fop, sizeof fop);
// fop.wFunc = FO_COPY;
// //origPath += '\0';
// //goalPath += '\0';
// fop.pFrom = origPath;
// fop.pTo = goalPath;
// SHFileOperation(&fop);
//}
改成了如下操作:
bool folderMove(QString sourceDir, QString toDir, bool coverFileIfExist)
{
//toDir.replace("\\", "/");
if (sourceDir == toDir){
return true;
}
if (!QFile::exists(sourceDir)){
return false;
}
QDir *createfile = new QDir;
bool exist = createfile->exists(toDir);
if (exist){
if (coverFileIfExist){
createfile->remove(toDir);
}
}//end if
if (!QFile::copy(sourceDir, toDir))
{
return false;
}
return true;
}
但是,没有任何图像被移动,原来,QT移动文件,不但需要指定原始地址的完全路径,而且需要指定目标地址的文件路径,但是目前无法得到被移动图片的
具体文件名,所以用如下函数获得图片的文件名:
QString file_fullpath = ".\\a\\1.bmp", file_name;
QFileInfo info;
//file_fullpath = QFileDialog::getOpenFileName(this);
info = QFileInfo(file_fullpath);
file_name = info.fileName();