diff options
author | hjk <[email protected]> | 2021-05-31 18:20:46 +0200 |
---|---|---|
committer | hjk <[email protected]> | 2021-06-01 14:24:52 +0000 |
commit | c2bc7b8d3c4a7d3c497517c23bc5b45722a217ab (patch) | |
tree | 977bdccb018daa6b195f0c4dee92e914c7d0f077 /src/libs/utils/fileutils.cpp | |
parent | 2672bb2930367b375a63e36d8a4b26999d21b4da (diff) |
Utils: Introduce FilePath::ensureWritableDir()
Combine the test and potential creation in one operation to potentially
reduce the number of remote calls.
Change-Id: I06ffa1256593afec430eb35605ba3b249f1da97c
Reviewed-by: Christian Stenger <[email protected]>
Diffstat (limited to 'src/libs/utils/fileutils.cpp')
-rw-r--r-- | src/libs/utils/fileutils.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/libs/utils/fileutils.cpp b/src/libs/utils/fileutils.cpp index 7353693e16d..03c912e01f7 100644 --- a/src/libs/utils/fileutils.cpp +++ b/src/libs/utils/fileutils.cpp @@ -793,6 +793,18 @@ bool FilePath::isWritableDir() const return exists() && fi.isDir() && fi.isWritable(); } +bool FilePath::ensureWritableDir() const +{ + if (needsDevice()) { + QTC_ASSERT(s_deviceHooks.ensureWritableDir, return false); + return s_deviceHooks.ensureWritableDir(*this); + } + const QFileInfo fi{m_data}; + if (exists() && fi.isDir() && fi.isWritable()) + return true; + return QDir().mkpath(m_data); +} + bool FilePath::isExecutableFile() const { if (needsDevice()) { |