diff --git a/src/db/plugins/simple/Directory.hxx b/src/db/plugins/simple/Directory.hxx index 540cfec3c..8c6924a35 100644 --- a/src/db/plugins/simple/Directory.hxx +++ b/src/db/plugins/simple/Directory.hxx @@ -111,6 +111,15 @@ public: return new Directory(std::string(), nullptr); } + /** + * Is this really a regular file which is being treated like a + * directory? + */ + bool IsReallyAFile() const noexcept { + return device == DEVICE_INARCHIVE || + device == DEVICE_CONTAINER; + } + bool IsMount() const noexcept { return mounted_database != nullptr; } diff --git a/src/db/update/UpdateIO.cxx b/src/db/update/UpdateIO.cxx index d79e50f4a..b9cde8e0c 100644 --- a/src/db/update/UpdateIO.cxx +++ b/src/db/update/UpdateIO.cxx @@ -59,8 +59,7 @@ DirectoryExists(Storage &storage, const Directory &directory) noexcept return false; } - return directory.device == DEVICE_INARCHIVE || - directory.device == DEVICE_CONTAINER + return directory.IsReallyAFile() ? info.IsRegular() : info.IsDirectory(); }