summaryrefslogtreecommitdiff
path: root/configmgr/source/misc/filehelper.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'configmgr/source/misc/filehelper.cxx')
-rw-r--r--configmgr/source/misc/filehelper.cxx390
1 files changed, 0 insertions, 390 deletions
diff --git a/configmgr/source/misc/filehelper.cxx b/configmgr/source/misc/filehelper.cxx
deleted file mode 100644
index ffa1302c6cac..000000000000
--- a/configmgr/source/misc/filehelper.cxx
+++ /dev/null
@@ -1,390 +0,0 @@
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2008 by Sun Microsystems, Inc.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * $RCSfile: filehelper.cxx,v $
- * $Revision: 1.19 $
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_configmgr.hxx"
-
-
-#ifndef _RTL_USTRING_H_
-#include <rtl/ustring.hxx>
-#endif
-#include <osl/file.hxx>
-#include "filehelper.hxx"
-#include <rtl/ustrbuf.hxx>
-#include <osl/diagnose.h>
-
-#define ASCII(x) rtl::OUString::createFromAscii(x)
-
-namespace configmgr
-{
- //==========================================================================
- //= FileHelper
- //==========================================================================
-
- // -----------------------------------------------------------------------------
- bool FileHelper::tryToRemoveFile(const rtl::OUString& _aURL, bool tryBackupFirst)
- {
- if (tryBackupFirst)
- {
- rtl::OUString aBakURL = _aURL.concat( ASCII(".bak") );
- osl::File::RC eBakError = osl::File::move(_aURL,aBakURL);
- if (eBakError == osl::File::E_None)
- return true;
- }
- osl::File::RC eError = osl::File::remove(_aURL);
- return eError == osl::File::E_None || eError == osl::File::E_NOENT;
- }
- // -----------------------------------------------------------------------------
- void FileHelper::replaceFile(
- const rtl::OUString& _aToURL, const rtl::OUString &_aFromURL) SAL_THROW((io::IOException))
- {
- osl::File::remove(_aToURL);
- osl::File::RC eError = osl::File::move(_aFromURL, _aToURL);
- if (eError != osl::File::E_None &&
- eError != osl::File::E_NOENT)
- {
- rtl::OUStringBuffer sErrorBuf;
- sErrorBuf.appendAscii("Configmgr: replaceFile failed ");
- sErrorBuf.appendAscii("for replacing file \"").append(_aFromURL).appendAscii("\". ");
- sErrorBuf.appendAscii("by file \"").append(_aToURL).appendAscii("\". ");
- sErrorBuf.appendAscii("Error = \"").append(FileHelper::createOSLErrorString(eError)).appendAscii("\" ");
- sErrorBuf.appendAscii("[").append(sal_Int32(eError)).appendAscii("] ");
-
- rtl::OUString const sError = sErrorBuf.makeStringAndClear();
- OSL_ENSURE(0, rtl::OUStringToOString(sError,RTL_TEXTENCODING_ASCII_US).getStr());
- throw io::IOException(sError, NULL);
- }
- }
-
- // -----------------------------------------------------------------------------
- bool FileHelper::fileExists(rtl::OUString const& _sFileURL)
- {
- osl::DirectoryItem aItem;
- return osl::DirectoryItem::get(_sFileURL, aItem) == osl::Directory::E_None;
- }
-
- // -----------------------------------------------------------------------------
- bool FileHelper::dirExists(rtl::OUString const& _sDirURL)
- {
- return osl::Directory(_sDirURL).open() == osl::Directory::E_None;
- }
-
- // -----------------------------------------------------------------------------
- sal_uInt64 FileHelper::getModifyStatus(rtl::OUString const& _sURL, TimeValue & rModifyTime)
- {
- static const TimeValue k_NullTime = {0,0};
- sal_uInt64 aSize = 0;
- rModifyTime = k_NullTime;
-
- osl::DirectoryItem aItem;
- if (osl::FileBase::E_None == osl::DirectoryItem::get(_sURL, aItem))
- {
- osl::FileStatus aStatus(osl_FileStatus_Mask_ModifyTime|osl_FileStatus_Mask_Type|osl_FileStatus_Mask_FileSize);
- if (osl::FileBase::E_None == aItem.getFileStatus(aStatus))
- {
- if (aStatus.isValid(osl_FileStatus_Mask_ModifyTime))
- rModifyTime = aStatus.getModifyTime();
-
- if (aStatus.isValid(osl_FileStatus_Mask_FileSize))
- aSize = aStatus.getFileSize();
- }
- }
- return aSize;
- }
-
- // -----------------------------------------------------------------------------
- rtl::OUString FileHelper::createOSLErrorString(osl::FileBase::RC eError)
- {
- rtl::OUString aRet;
- switch(eError)
- {
- case osl::FileBase::E_None:
- break;
-
- case osl::FileBase::E_PERM:
- aRet = ASCII("Operation not permitted");
- break;
-
- case osl::FileBase::E_NOENT:
- aRet = ASCII("No such file or directory");
- break;
-
- case osl::FileBase::E_SRCH:
- aRet = ASCII("unknown error: osl_File_E_SRCH");
- break;
-
- case osl::FileBase::E_INTR:
- aRet = ASCII("function call was interrupted");
- break;
-
- case osl::FileBase::E_IO:
- aRet = ASCII("I/O error");
- break;
-
- case osl::FileBase::E_NXIO:
- aRet = ASCII("No such device or address");
- break;
-
- case osl::FileBase::E_2BIG:
- aRet = ASCII("unknown error: osl_File_E_2BIG");
- break;
-
- case osl::FileBase::E_NOEXEC:
- aRet = ASCII("unknown error: osl_File_E_NOEXEC");
- break;
-
- case osl::FileBase::E_BADF:
- aRet = ASCII("Bad file");
- break;
-
- case osl::FileBase::E_CHILD:
- aRet = ASCII("unknown error: osl_File_E_CHILD");
- break;
-
- case osl::FileBase::E_AGAIN:
- aRet = ASCII("Operation would block");
- break;
-
- case osl::FileBase::E_NOMEM:
- aRet = ASCII("not enough memory for allocating structures");
- break;
-
- case osl::FileBase::E_ACCES:
- aRet = ASCII("Permission denied");
- break;
-
- case osl::FileBase::E_FAULT:
- aRet = ASCII("Bad address");
- break;
-
- case osl::FileBase::E_BUSY:
- aRet = ASCII("Text file busy");
- break;
-
- case osl::FileBase::E_EXIST:
- aRet = ASCII("File exists");
- break;
-
- case osl::FileBase::E_XDEV:
- aRet = ASCII("unknown error: osl_File_E_XDEV");
- break;
-
- case osl::FileBase::E_NODEV:
- aRet = ASCII("No such device");
- break;
-
- case osl::FileBase::E_NOTDIR:
- aRet = ASCII("Not a directory");
- break;
-
- case osl::FileBase::E_ISDIR:
- aRet = ASCII("Is a director");
- break;
-
- case osl::FileBase::E_INVAL:
- aRet = ASCII("the format of the parameters was not valid");
- break;
-
- case osl::FileBase::E_NFILE:
- aRet = ASCII("too many open files in the system");
- break;
-
- case osl::FileBase::E_MFILE:
- aRet = ASCII("too many open files used by the process");
- break;
-
- case osl::FileBase::E_NOTTY:
- aRet = ASCII("unknown error: osl_File_E_NOTTY");
- break;
-
- case osl::FileBase::E_FBIG:
- aRet = ASCII("File too large");
- break;
-
- case osl::FileBase::E_NOSPC:
- aRet = ASCII("No space left on device");
- break;
-
- case osl::FileBase::E_SPIPE:
- aRet = ASCII("unknown error: osl_File_E_SPIPE");
- break;
-
- case osl::FileBase::E_ROFS:
- aRet = ASCII("Read-only file system");
- break;
-
- case osl::FileBase::E_MLINK:
- aRet = ASCII("Too many links");
- break;
-
- case osl::FileBase::E_PIPE:
- aRet = ASCII("unknown error: osl_File_E_PIPE");
- break;
-
- case osl::FileBase::E_DOM:
- aRet = ASCII("unknown error: osl_File_E_DOM");
- break;
-
- case osl::FileBase::E_RANGE:
- aRet = ASCII("unknown error: osl_File_E_RANGE");
- break;
-
- case osl::FileBase::E_DEADLK:
- aRet = ASCII("unknown error: osl_File_E_DEADLK");
- break;
-
- case osl::FileBase::E_NAMETOOLONG:
- aRet = ASCII("File name too long");
- break;
-
- case osl::FileBase::E_NOLCK:
- aRet = ASCII("No record locks available");
- break;
-
- case osl::FileBase::E_NOSYS:
- aRet = ASCII("Function not implemente");
- break;
-
- case osl::FileBase::E_NOTEMPTY:
- aRet = ASCII("Directory not empt");
- break;
-
- case osl::FileBase::E_LOOP:
- aRet = ASCII("Too many symbolic links encountered");
- break;
-
- case osl::FileBase::E_ILSEQ:
- aRet = ASCII("unknown error: osl_File_E_ILSEQ");
- break;
-
- case osl::FileBase::E_NOLINK:
- aRet = ASCII("Link has been severed");
- break;
-
- case osl::FileBase::E_MULTIHOP:
- aRet = ASCII("Multihop attempted");
- break;
-
- case osl::FileBase::E_USERS:
- aRet = ASCII("unknown error: osl_File_E_USERS");
- break;
-
- case osl::FileBase::E_OVERFLOW:
- aRet = ASCII("Value too large for defined data type");
- break;
-
- /* unmapped error: always last entry in enum! */
- default: OSL_ENSURE(false, "Found unknown OSL File Error");
- case osl::FileBase::E_invalidError:
- aRet = ASCII("unmapped Error");
- break;
- }
- return aRet;
- }
-
- // -----------------------------------------------------------------------------
- rtl::OUString FileHelper::getParentDir(rtl::OUString const& _sURL)
- {
- rtl::OUString parentDirectory ;
- rtl::OUString fileName ;
-
- splitFileUrl(_sURL, parentDirectory, fileName) ;
- return parentDirectory ;
- }
-
- // -----------------------------------------------------------------------------
- void FileHelper::splitFileUrl(const rtl::OUString& aFileUrl,
- rtl::OUString& aParentDirectory,
- rtl::OUString& aFileName) {
- // goto last '/' and cut the rest.
- sal_Int32 nIdx = aFileUrl.lastIndexOf(delimiter, aFileUrl.getLength());
- if (nIdx > 0) {
- aParentDirectory = aFileUrl.copy(0, nIdx);
- aFileName = aFileUrl.copy(nIdx + 1) ;
- }
- else {
- aParentDirectory = rtl::OUString() ;
- aFileName = aFileUrl ;
- }
- }
-
- // -----------------------------------------------------------------------------
- rtl::OUString FileHelper::getFileName(const rtl::OUString& aFileUrl) {
- rtl::OUString parentDirectory ;
- rtl::OUString fileName ;
-
- splitFileUrl(aFileUrl, parentDirectory, fileName) ;
- return fileName ;
- }
- // -----------------------------------------------------------------------------
- osl::FileBase::RC FileHelper::mkdir(rtl::OUString const& _sDirURL)
- {
- // direct create a directory
- osl::FileBase::RC eError = osl::Directory::create(_sDirURL); // try to create the directory
- if (eError == osl::FileBase::E_EXIST ||
- eError == osl::FileBase::E_None ||
- FileHelper::dirExists(_sDirURL))
- {
- eError = osl::FileBase::E_None; // Exists or created
- }
- return eError;
- }
-
- // -----------------------------------------------------------------------------
- osl::FileBase::RC FileHelper::mkdirs(rtl::OUString const& _sDirURL)
- {
- osl::FileBase::RC eError = mkdir(_sDirURL);
- switch (eError)
- {
- case osl::FileBase::E_EXIST: OSL_ASSERT(false);
- case osl::FileBase::E_None:
- break;
-
- case osl::FileBase::E_NOENT:
- {
- rtl::OUString sParentDir = FileHelper::getParentDir(_sDirURL);
- if (sParentDir.getLength() == 0)
- break;
-
- eError = mkdirs(sParentDir);
- if (eError != osl::FileBase::E_None)
- break;
-
- eError = mkdir(_sDirURL);
- }
- break;
-
- default: OSL_TRACE("configmgr: Could not create directory (%d).", int(eError));
- break;
- }
- return eError;
- }
-
-} // namespace configmgr