[Libreoffice-commits] core.git: unotools/source

Mike Kaganski (via logerrit) logerrit at kemper.freedesktop.org
Wed Sep 1 18:27:21 UTC 2021


 unotools/source/ucbhelper/localfilehelper.cxx |   52 +-------------------------
 1 file changed, 3 insertions(+), 49 deletions(-)

New commits:
commit 86576cef2c77c8dc78e374aadaadf018610ed6f4
Author:     Mike Kaganski <mike.kaganski at collabora.com>
AuthorDate: Wed Sep 1 15:50:42 2021 +0200
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Wed Sep 1 20:26:48 2021 +0200

    Simplify utl::removeTree
    
    Implement it using comphelper::DirectoryHelper::deleteDirRecursively
    
    Change-Id: I89d4e7c71b7556cb23d43fffa9b1e12df5ef8c3a
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121452
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/unotools/source/ucbhelper/localfilehelper.cxx b/unotools/source/ucbhelper/localfilehelper.cxx
index 19de32703b37..bdabd5f0ac69 100644
--- a/unotools/source/ucbhelper/localfilehelper.cxx
+++ b/unotools/source/ucbhelper/localfilehelper.cxx
@@ -20,12 +20,12 @@
 #include <com/sun/star/sdbc/XResultSet.hpp>
 #include <com/sun/star/ucb/XContentAccess.hpp>
 #include <com/sun/star/ucb/CommandAbortedException.hpp>
+#include <comphelper/DirectoryHelper.hxx>
 #include <comphelper/processfactory.hxx>
 #include <comphelper/sequence.hxx>
 #include <sal/log.hxx>
 #include <unotools/localfilehelper.hxx>
 #include <rtl/ustring.hxx>
-#include <osl/file.hxx>
 #include <ucbhelper/content.hxx>
 #include <vector>
 
@@ -83,54 +83,8 @@ css::uno::Sequence < OUString > LocalFileHelper::GetFolderContents( const OUStri
 }
 
 void removeTree(OUString const & url) {
-    osl::Directory dir(url);
-    osl::FileBase::RC rc = dir.open();
-    switch (rc) {
-    case osl::FileBase::E_None:
-        break;
-    case osl::FileBase::E_NOENT:
-        return; //TODO: SAL_WARN if recursive
-    default:
-        SAL_WARN("desktop.app", "cannot open directory " << dir.getURL() << ": " << +rc);
-        return;
-    }
-    for (;;) {
-        osl::DirectoryItem i;
-        rc = dir.getNextItem(i, SAL_MAX_UINT32);
-        if (rc == osl::FileBase::E_NOENT) {
-            break;
-        }
-        if (rc != osl::FileBase::E_None) {
-            SAL_WARN( "desktop.app", "cannot iterate directory " << dir.getURL() << ": " << +rc);
-            break;
-        }
-        osl::FileStatus stat(
-            osl_FileStatus_Mask_Type | osl_FileStatus_Mask_FileName |
-            osl_FileStatus_Mask_FileURL);
-        rc = i.getFileStatus(stat);
-        if (rc != osl::FileBase::E_None) {
-            SAL_WARN( "desktop.app", "cannot stat in directory " << dir.getURL() << ": " << +rc);
-            continue;
-        }
-        if (stat.getFileType() == osl::FileStatus::Directory) { //TODO: symlinks
-            removeTree(stat.getFileURL());
-        } else {
-            rc = osl::File::remove(stat.getFileURL());
-            SAL_WARN_IF(
-                rc != osl::FileBase::E_None, "desktop.app",
-                "cannot remove file " << stat.getFileURL() << ": " << +rc);
-        }
-    }
-    if (dir.isOpen()) {
-        rc = dir.close();
-        SAL_WARN_IF(
-            rc != osl::FileBase::E_None, "desktop.app",
-            "cannot close directory " << dir.getURL() << ": " << +rc);
-    }
-    rc = osl::Directory::remove(url);
-    SAL_WARN_IF(
-        rc != osl::FileBase::E_None, "desktop.app",
-        "cannot remove directory " << url << ": " << +rc);
+    const bool bError = comphelper::DirectoryHelper::deleteDirRecursively(url);
+    SAL_WARN_IF(bError, "desktop.app", "error removing directory " << url);
 }
 
 }


More information about the Libreoffice-commits mailing list