diff options
author | d3fault <d3fault@d3fault.net> | 2017-11-24 16:07:53 -0700 |
---|---|---|
committer | d3fault <d3fault@d3fault.net> | 2018-01-17 04:32:47 +0000 |
commit | 1a4cc8d57b928509a64f9679e5c0e7afaa05cb54 (patch) | |
tree | 7748aa4993fca0bf115402e2df4bd7d4d49537db /src/corelib/io/qiodevice.cpp | |
parent | 0aecac1dcfd4b8e353e2fc0b0ad06d77b4b125d6 (diff) |
Add QIODevice::NewOnly and QIODevice::ExistingOnly OpenMode flags
When QFile::open is called with the NewOnly flag, the call will
fail if the file already exists. As usual, if the file does not exist,
it will be created. Like QTemporaryFile, there is a guarantee from
the operating system that you are not accidentally creating a new file
on top of an older file. When QFile::open is called with the
ExistingOnly flag, the call will fail if the file does not exist. The
ExistingOnly flag only provides new functionality when used with the
WriteOnly flag. For ReadOnly it provides no change in functionality,
as ReadOnly by itself already never creates.
Task-number: QTBUG-52244
Change-Id: I8e3206728f245f95172c225bf297023fb078fc6d
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/corelib/io/qiodevice.cpp')
-rw-r--r-- | src/corelib/io/qiodevice.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp index 7d46898911..95a5fb27cf 100644 --- a/src/corelib/io/qiodevice.cpp +++ b/src/corelib/io/qiodevice.cpp @@ -324,6 +324,23 @@ QIODevicePrivate::~QIODevicePrivate() terminators are translated to the local encoding, for example '\\r\\n' for Win32. \value Unbuffered Any buffer in the device is bypassed. + \value NewOnly Fail if the file to be opened already exists. Create and + open the file only if it does not exist. There is a + guarantee from the operating system that you are the only + one creating and opening the file. Note that this mode + implies WriteOnly, and combining it with ReadWrite is + allowed. This flag currently only affects QFile. Other + classes might use this flag in the future, but until then + using this flag with any classes other than QFile may + result in undefined behavior. + \value ExistingOnly Fail if the file to be opened does not exist. This flag + must be specified alongside ReadOnly, WriteOnly, or + ReadWrite. Note that using this flag with ReadOnly alone + is redundant, as ReadOnly already fails when the file does + not exist. This flag currently only affects QFile. Other + classes might use this flag in the future, but until then + using this flag with any classes other than QFile may + result in undefined behavior. Certain flags, such as \c Unbuffered and \c Truncate, are meaningless when used with some subclasses. Some of these |