QTemporaryFile¶
The QTemporaryFile
class is an I/O device that operates on temporary files. More…
Synopsis¶
Functions¶
def
autoRemove
()def
fileTemplate
()def
open
()def
setAutoRemove
(b)def
setFileTemplate
(name)
Static functions¶
def
createNativeFile
(file)def
createNativeFile
(fileName)
Detailed Description¶
QTemporaryFile
is used to create unique temporary files safely. The file itself is created by calling open()
. The name of the temporary file is guaranteed to be unique (i.e., you are guaranteed to not overwrite an existing file), and the file will subsequently be removed upon destruction of the QTemporaryFile
object. This is an important technique that avoids data corruption for applications that store data in temporary files. The file name is either auto-generated, or created based on a template, which is passed to QTemporaryFile
‘s constructor.
Example:
# Within a function/method... file = QTemporaryFile() if (file.open()) { # file.fileName() returns the unique file name # The QTemporaryFile destructor removes the temporary file # as it goes out of scope.
Reopening a QTemporaryFile
after calling close()
is safe. For as long as the QTemporaryFile
object itself is not destroyed, the unique temporary file will exist and be kept open internally by QTemporaryFile
.
The file name of the temporary file can be found by calling fileName()
. Note that this is only defined after the file is first opened; the function returns an empty string before this.
A temporary file will have some static part of the name and some part that is calculated to be unique. The default filename will be determined from applicationName()
(otherwise qt_temp
) and will be placed into the temporary path as returned by tempPath()
. If you specify your own filename, a relative file path will not be placed in the temporary directory by default, but be relative to the current working directory.
Specified filenames can contain the following template XXXXXX
(six upper case “X” characters), which will be replaced by the auto-generated portion of the filename. Note that the template is case sensitive. If the template is not present in the filename, QTemporaryFile
appends the generated part to the filename given.
Note
On Linux, QTemporaryFile
will attempt to create unnamed temporary files. If that succeeds, open()
will return true but exists()
will be false. If you call fileName()
or any function that calls it, QTemporaryFile
will give the file a name, so most applications will not see a difference.
See also
- class PySide6.QtCore.QTemporaryFile¶
PySide6.QtCore.QTemporaryFile(parent)
PySide6.QtCore.QTemporaryFile(templateName)
PySide6.QtCore.QTemporaryFile(templateName, parent)
- Parameters
templateName – str
parent –
PySide6.QtCore.QObject
Constructs a QTemporaryFile
using as file template the application name returned by applicationName()
(otherwise qt_temp
) followed by “.XXXXXX”. The file is stored in the system’s temporary directory, tempPath()
.
See also
Constructs a QTemporaryFile
(with the given parent
) using as file template the application name returned by applicationName()
(otherwise qt_temp
) followed by “.XXXXXX”. The file is stored in the system’s temporary directory, tempPath()
.
See also
Constructs a QTemporaryFile
with a template filename of templateName
. Upon opening the temporary file this will be used to create a unique filename.
If the templateName
does not contain XXXXXX it will automatically be appended and used as the dynamic portion of the filename.
If templateName
is a relative path, the path will be relative to the current working directory. You can use tempPath()
to construct templateName
if you want use the system’s temporary directory.
See also
Constructs a QTemporaryFile
with a template filename of templateName
and the specified parent
. Upon opening the temporary file this will be used to create a unique filename.
If the templateName
does not contain XXXXXX it will automatically be appended and used as the dynamic portion of the filename.
If templateName
is a relative path, the path will be relative to the current working directory. You can use tempPath()
to construct templateName
if you want use the system’s temporary directory.
See also
- PySide6.QtCore.QTemporaryFile.autoRemove()¶
- Return type
bool
Returns true
if the QTemporaryFile
is in auto remove mode. Auto-remove mode will automatically delete the filename from disk upon destruction. This makes it very easy to create your QTemporaryFile
object on the stack, fill it with data, read from it, and finally on function return it will automatically clean up after itself.
Auto-remove is on by default.
See also
- static PySide6.QtCore.QTemporaryFile.createNativeFile(file)¶
- Parameters
file –
PySide6.QtCore.QFile
- Return type
If file
is not already a native file, then a QTemporaryFile
is created in tempPath()
, the contents of file
is copied into it, and a pointer to the temporary file is returned. Does nothing and returns 0
if file
is already a native file.
For example:
f = QFile(":/resources/file.txt") QTemporaryFile.createNativeFile(f) # Returns a pointer to a temporary file f = QFile("/users/qt/file.txt") QTemporaryFile.createNativeFile(f) # Returns 0See also
- static PySide6.QtCore.QTemporaryFile.createNativeFile(fileName)
- Parameters
fileName – str
- Return type
This is an overloaded function.
Works on the given fileName
rather than an existing QFile
object.
- PySide6.QtCore.QTemporaryFile.fileTemplate()¶
- Return type
str
Returns the set file template. The default file template will be called qcoreappname.XXXXXX and be placed in tempPath()
.
See also
- PySide6.QtCore.QTemporaryFile.open()¶
- Return type
bool
A QTemporaryFile
will always be opened in QIODevice::ReadWrite mode, this allows easy access to the data in the file. This function will return true upon success and will set the fileName()
to the unique filename used.
See also
fileName()
- PySide6.QtCore.QTemporaryFile.setAutoRemove(b)¶
- Parameters
b – bool
Sets the QTemporaryFile
into auto-remove mode if b
is true
.
Auto-remove is on by default.
If you set this property to false
, ensure the application provides a way to remove the file once it is no longer needed, including passing the responsibility on to another process. Always use the fileName()
function to obtain the name and never try to guess the name that QTemporaryFile
has generated.
On some systems, if fileName()
is not called before closing the file, the temporary file may be removed regardless of the state of this property. This behavior should not be relied upon, so application code should either call fileName()
or leave the auto removal functionality enabled.
See also
- PySide6.QtCore.QTemporaryFile.setFileTemplate(name)¶
- Parameters
name – str
Sets the static portion of the file name to name
. If the file template contains XXXXXX that will automatically be replaced with the unique part of the filename, otherwise a filename will be determined automatically based on the static portion specified.
If name
contains a relative file path, the path will be relative to the current working directory. You can use tempPath()
to construct name
if you want use the system’s temporary directory.
See also
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.