一、文件拷贝(不包含父目录)
bool CopyDirectoryFiles(const QString &fromDir,const QString &toDir)
{
QDir sourceDir(fromDir);
QDir targetDir(toDir);
if(!targetDir.exists())
{
if(!targetDir.mkdir(targetDir.absolutePath()))
{
return false;
}
}
QFileInfoList list = sourceDir.entryInfoList();
for(int i = 0; i < list.size(); i++)
{
QFileInfo fileInfo = list.at(i);
if(fileInfo.fileName()=="." || fileInfo.fileName()=="..")
{
continue;
}
if(fileInfo.isDir())
{
if(!CopyDirectoryFiles(fileInfo.filePath(),targetDir.filePath(fileInfo.fileName())))
{
return false;
}
}
else
{
if(targetDir.exists(fileInfo.fileName()))
{
targetDir.remove(fileInfo.fileName); //有相同的,直接删除
}
if(!QFile::copy(fileInfo.filePath(),targetDir.filePath(fileInfo.fileName())))
{
return false;
}
}
}
return true;
}