TemporaryDir
此类提供临时目录的功能,且不会覆盖已有的同名目录,目录实体是在其构造函数中创建中,并在析构函数中删除。
QTemporaryDir tdir;//不指定路径,就会在系统temp目录中创建此目录
QTemporaryDir tdir("relative/dir_XXXXXX");//若是指定了相对路径,那么就会在当前程序路径中创建目录
//其中XXXXXX是qt自动生成的一个6位字符串,保证名称唯一
if(tdir.isvalid())//创建后一定要使用isValid查看是否创建成功
{
QDir dir(tdir.path());//创建后要通过实际dir类来操作
...
tdir.remove();//直接手动移除目录
}
//超出作用域,tdir对象销毁,临时目录随之销毁
//可以通过setAutoRemove(false)来设置不销毁
TemporaryFile
同上,提供临时文件。
QString template="relative/file_XXXXXX.docx";//使用相对路径,创建在当前程序路径中
//XXXXXX同上,也是qt生成了唯一标识符,即使你不用也会附加在文件名最后
//也可以用绝对路径,自由度较高(不知道dir是不是一样,或者file也不能随便自定义路径)
QTemporaryFile tfile(template);//通过给出的模板/路径来构建临时文件,但还没创建文件实体
if(!tfile.open())//调用open后,文件实体才被创建出来
return;
tfile.write("...");
tfile.flush();
tfile.close();//此类继承自QFile,拥有其所有功能,且不像dir要另外用实体类,tfile直接就可以操作
//销毁策略与tdir相同