我想在some/path/myfile
中复制$TMPDIR/myprog-<random-string>.ext
,这样我就可以将其传递给阻塞无扩展名文件的第3方过程。
这是我想要的工作:
QString originalPath = "some/path/myfile";
QTemporaryFile f(
QDir::temp().absoluteFilePath("mprog-XXXXXX.ext")
);
// f.open(); ?
QFile(originalPath).copy(f.fileName());
但是,我现在遇到一个问题-该文件尚不存在,因此尚未被分配一个临时的
fileName()
,或者该文件名已被分配但该文件本身已经存在,从而阻止了新文件的复制。 。我如何将文件复制到QT中的临时位置,并在调用QTemporaryFile的析构函数时删除该临时副本?
最佳答案
如果该文件不存在,请完全按照完成的操作创建QTemporaryFile
对象,将其打开,然后立即将其关闭。这将生成随机文件名并在磁盘上创建它。
当您的QTemporaryFile
对象被破坏时,该文件将从磁盘中删除。