我想在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对象被破坏时,该文件将从磁盘中删除。

08-16 00:56