LibreOffice
LibreOffice 24.2 SDK C/C++ API Reference
Public Member Functions | Static Public Member Functions | List of all members
osl::Directory Class Reference

The directory class object provides an enumeration of DirectoryItems. More...

#include <file.hxx>

Inheritance diagram for osl::Directory:
osl::FileBase

Public Member Functions

 Directory (const ::rtl::OUString &strPath)
 Constructor. More...
 
 ~Directory ()
 Destructor. More...
 
rtl::OUString getURL () const
 Obtain the URL. More...
 
RC open ()
 Open a directory for enumerating its contents. More...
 
bool isOpen ()
 Query if directory is open. More...
 
RC close ()
 Close a directory. More...
 
RC reset ()
 Resets the directory item enumeration to the beginning. More...
 
RC getNextItem (DirectoryItem &rItem, sal_uInt32 nHint=0)
 Retrieve the next item of a previously opened directory. More...
 

Static Public Member Functions

static RC getVolumeInfo (const ::rtl::OUString &ustrDirectoryURL, VolumeInfo &rInfo)
 Retrieve information about a volume. More...
 
static RC create (const ::rtl::OUString &ustrDirectoryURL, sal_uInt32 flags=osl_File_OpenFlag_Read|osl_File_OpenFlag_Write)
 Create a directory. More...
 
static RC remove (const ::rtl::OUString &ustrDirectoryURL)
 Remove an empty directory. More...
 
static RC createPath (const ::rtl::OUString &aDirectoryUrl, DirectoryCreationObserver *aDirectoryCreationObserver=NULL)
 Create a directory path. More...
 
- Static Public Member Functions inherited from osl::FileBase
static RC getCanonicalName (const ::rtl::OUString &ustrRequestedURL, ::rtl::OUString &ustrValidURL)
 Determine a valid unused canonical name for a requested name. More...
 
static RC getAbsoluteFileURL (const ::rtl::OUString &ustrBaseDirectoryURL, const ::rtl::OUString &ustrRelativeFileURL, ::rtl::OUString &ustrAbsoluteFileURL)
 Convert a path relative to a given directory into an full qualified file URL. More...
 
static RC getSystemPathFromFileURL (const ::rtl::OUString &ustrFileURL, ::rtl::OUString &ustrSystemPath)
 Convert a file URL into a system dependent path. More...
 
static RC getFileURLFromSystemPath (const ::rtl::OUString &ustrSystemPath, ::rtl::OUString &ustrFileURL)
 Convert a system dependent path into a file URL. More...
 
static RC searchFileURL (const ::rtl::OUString &ustrFileName, const ::rtl::OUString &ustrSearchPath, ::rtl::OUString &ustrFileURL)
 Search a full qualified system path or a file URL. More...
 
static RC getTempDirURL (::rtl::OUString &ustrTempDirURL)
 Retrieves the file URL of the system's temporary directory path. More...
 
static RC createTempFile (::rtl::OUString *pustrDirectoryURL, oslFileHandle *pHandle, ::rtl::OUString *pustrTempFileURL)
 Creates a temporary file in the directory provided by the caller or the directory returned by getTempDirURL. More...
 

Additional Inherited Members

- Public Types inherited from osl::FileBase
enum  RC {
  E_None = osl_File_E_None, E_PERM = osl_File_E_PERM, E_NOENT = osl_File_E_NOENT, E_SRCH = osl_File_E_SRCH,
  E_INTR = osl_File_E_INTR, E_IO = osl_File_E_IO, E_NXIO = osl_File_E_NXIO, E_2BIG = osl_File_E_2BIG,
  E_NOEXEC = osl_File_E_NOEXEC, E_BADF = osl_File_E_BADF, E_CHILD = osl_File_E_CHILD, E_AGAIN = osl_File_E_AGAIN,
  E_NOMEM = osl_File_E_NOMEM, E_ACCES = osl_File_E_ACCES, E_FAULT = osl_File_E_FAULT, E_BUSY = osl_File_E_BUSY,
  E_EXIST = osl_File_E_EXIST, E_XDEV = osl_File_E_XDEV, E_NODEV = osl_File_E_NODEV, E_NOTDIR = osl_File_E_NOTDIR,
  E_ISDIR = osl_File_E_ISDIR, E_INVAL = osl_File_E_INVAL, E_NFILE = osl_File_E_NFILE, E_MFILE = osl_File_E_MFILE,
  E_NOTTY = osl_File_E_NOTTY, E_FBIG = osl_File_E_FBIG, E_NOSPC = osl_File_E_NOSPC, E_SPIPE = osl_File_E_SPIPE,
  E_ROFS = osl_File_E_ROFS, E_MLINK = osl_File_E_MLINK, E_PIPE = osl_File_E_PIPE, E_DOM = osl_File_E_DOM,
  E_RANGE = osl_File_E_RANGE, E_DEADLK = osl_File_E_DEADLK, E_NAMETOOLONG = osl_File_E_NAMETOOLONG, E_NOLCK = osl_File_E_NOLCK,
  E_NOSYS = osl_File_E_NOSYS, E_NOTEMPTY = osl_File_E_NOTEMPTY, E_LOOP = osl_File_E_LOOP, E_ILSEQ = osl_File_E_ILSEQ,
  E_NOLINK = osl_File_E_NOLINK, E_MULTIHOP = osl_File_E_MULTIHOP, E_USERS = osl_File_E_USERS, E_OVERFLOW = osl_File_E_OVERFLOW,
  E_NOTREADY = osl_File_E_NOTREADY, E_invalidError = osl_File_E_invalidError, E_TIMEDOUT = osl_File_E_TIMEDOUT, E_NETWORK = osl_File_E_NETWORK
}
 

Detailed Description

The directory class object provides an enumeration of DirectoryItems.

See also
DirectoryItem
File

Constructor & Destructor Documentation

◆ Directory()

osl::Directory::Directory ( const ::rtl::OUString strPath)
inline

Constructor.

Parameters
[in]strPathThe full qualified URL of the directory. Relative URLs are not allowed.

◆ ~Directory()

osl::Directory::~Directory ( )
inline

Destructor.

Member Function Documentation

◆ close()

RC osl::Directory::close ( )
inline

Close a directory.

Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOMEMnot enough memory for allocating structures
E_BADFinvalid oslDirectory parameter
E_INTRthe function call was interrupted
See also
open()

◆ create()

static RC osl::Directory::create ( const ::rtl::OUString ustrDirectoryURL,
sal_uInt32  flags = osl_File_OpenFlag_Read | osl_File_OpenFlag_Write 
)
inlinestatic

Create a directory.

Parameters
[in]ustrDirectoryURLFull qualified URL of the directory to create.
[in]flagsOptional flags, see osl_createDirectoryWithFlags for details. This defaulted parameter is new since LibreOffice 4.3.
Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOMEMnot enough memory for allocating structures
E_EXISTfile exists
E_ACCESpermission denied
E_NAMETOOLONGfile name too long
E_NOENTno such file or directory
E_NOTDIRnot a directory
E_ROFSread-only file system
E_NOSPCno space left on device
E_DQUOTquota exceeded
E_LOOPtoo many symbolic links encountered
E_FAULTbad address
E_IOon I/O errors
E_MLINKtoo many links
E_MULTIHOPmultihop attempted
E_NOLINKlink has been severed
See also
remove()

◆ createPath()

static RC osl::Directory::createPath ( const ::rtl::OUString aDirectoryUrl,
DirectoryCreationObserver aDirectoryCreationObserver = NULL 
)
inlinestatic

Create a directory path.

The osl_createDirectoryPath function creates a specified directory path. All nonexisting sub directories will be created.

Attention
You cannot rely on getting the error code E_EXIST for existing directories. Programming against this error code is in general a strong indication of a wrong usage of osl_createDirectoryPath.
Parameters
aDirectoryUrl[in] The absolute file URL of the directory path to create. A relative file URL will not be accepted.
aDirectoryCreationObserver[in] Pointer to an instance of type DirectoryCreationObserver that will be informed about the creation of a directory. The value of this parameter may be NULL, in this case notifications will not be sent.
Return values
E_NoneOn success
E_INVALThe format of the parameters was not valid
E_ACCESPermission denied
E_EXISTThe final node of the specified directory path already exist
E_NAMETOOLONGThe name of the specified directory path exceeds the maximum allowed length
E_NOTDIRA component of the specified directory path already exist as file in any part of the directory path
E_ROFSRead-only file system
E_NOSPCNo space left on device
E_DQUOTQuota exceeded
E_FAULTBad address
E_IOI/O error
E_LOOPToo many symbolic links encountered
E_NOLINKLink has been severed
E_invalidErrorAn unknown error occurred
See also
DirectoryCreationObserver
create

◆ getNextItem()

RC osl::Directory::getNextItem ( DirectoryItem rItem,
sal_uInt32  nHint = 0 
)
inline

Retrieve the next item of a previously opened directory.

Retrieves the next item of a previously opened directory.

Parameters
[out]rItemOn success a valid DirectoryItem.
[in]nHintWith this parameter the caller can tell the implementation that (s)he is going to call this function uHint times afterwards. This enables the implementation to get the information for more than one file and cache it until the next calls.
Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOMEMnot enough memory for allocating structures
E_NOENTno more entries in this directory
E_BADFinvalid oslDirectory parameter
E_OVERFLOWthe value too large for defined data type
See also
DirectoryItem

◆ getURL()

rtl::OUString osl::Directory::getURL ( ) const
inline

Obtain the URL.

Returns
the URL with which this Directory instance was created.
Since
LibreOffice 4.1

◆ getVolumeInfo()

static RC osl::Directory::getVolumeInfo ( const ::rtl::OUString ustrDirectoryURL,
VolumeInfo rInfo 
)
inlinestatic

Retrieve information about a volume.

Retrieves information about a volume. A volume can either be a mount point, a network resource or a drive depending on Operating System and File System.

Parameters
[in]ustrDirectoryURLFull qualified URL of the volume
[out]rInfoOn success it receives information about the volume.
Return values
E_Noneon success
E_NOMEMnot enough memory for allocating structures
E_INVALthe format of the parameters was not valid
E_NOTDIRnot a directory
E_NAMETOOLONGfile name too long
E_NOENTno such file or directory
E_ACCESpermission denied
E_LOOPtoo many symbolic links encountered
E_FAULTBad address
E_IOon I/O errors
E_NOSYSfunction not implemented
E_MULTIHOPmultihop attempted
E_NOLINKlink has been severed
E_INTRfunction call was interrupted
See also
FileStatus
VolumeInfo

◆ isOpen()

bool osl::Directory::isOpen ( )
inline

Query if directory is open.

Query if directory is open and so item enumeration is valid.

Return values
trueif the directory is open else false.
See also
open()
close()

◆ open()

RC osl::Directory::open ( )
inline

Open a directory for enumerating its contents.

Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOENTthe specified path doesn't exist
E_NOTDIRthe specified path is not a directory
E_NOMEMnot enough memory for allocating structures
E_ACCESpermission denied
E_MFILEtoo many open files used by the process
E_NFILEtoo many open files in the system
E_NAMETOOLONGFile name too long
E_LOOPToo many symbolic links encountered
See also
getNextItem()
close()

◆ remove()

static RC osl::Directory::remove ( const ::rtl::OUString ustrDirectoryURL)
inlinestatic

Remove an empty directory.

Parameters
[in]ustrDirectoryURLFull qualified URL of the directory.
Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOMEMnot enough memory for allocating structures
E_PERMoperation not permitted
E_ACCESpermission denied
E_NOENTno such file or directory
E_NOTDIRnot a directory
E_NOTEMPTYdirectory not empty
E_FAULTbad address
E_NAMETOOLONGfile name too long
E_BUSYdevice or resource busy
E_ROFSread-only file system
E_LOOPtoo many symbolic links encountered
E_EXISTfile exists
E_IOon I/O errors
E_MULTIHOPmultihop attempted
E_NOLINKlink has been severed
See also
create()

◆ reset()

RC osl::Directory::reset ( )
inline

Resets the directory item enumeration to the beginning.

Return values
E_Noneon success
E_INVALthe format of the parameters was not valid
E_NOENTthe specified path doesn't exist
E_NOTDIRthe specified path is not a directory
E_NOMEMnot enough memory for allocating structures
E_ACCESpermission denied
E_MFILEtoo many open files used by the process
E_NFILEtoo many open files in the system
E_NAMETOOLONGFile name too long
E_LOOPToo many symbolic links encountered
See also
open()

The documentation for this class was generated from the following file: