LibreOffice
LibreOffice 5.3 SDK C/C++ API Reference
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Static Public Member Functions | List of all members
osl::Directory Class Reference

The directory class object provides a 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)
 Searche 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 a enumeration of DirectoryItems.

See Also
DirectoryItem
File

Constructor & Destructor Documentation

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

Constructor.

Parameters
strPath[in] The full qualified URL of the directory. Relative URLs are not allowed.
osl::Directory::~Directory ( )
inline

Destructor.

Member Function Documentation

RC osl::Directory::close ( )
inline

Close a directory.

Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOMEM not enough memory for allocating structures E_BADF invalid oslDirectory parameter E_INTR the function call was interrupted
See Also
open()
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
ustrDirectoryURL[in] Full qualified URL of the directory to create.
flags[in] Optional flags, see osl_createDirectoryWithFlags for details. This defaulted parameter is new since LibreOffice 4.3.
Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOMEM not enough memory for allocating structures E_EXIST file exists E_ACCES permission denied E_NAMETOOLONG file name too long E_NOENT no such file or directory E_NOTDIR not a directory E_ROFS read-only file system E_NOSPC no space left on device E_DQUOT quota exceeded E_LOOP too many symbolic links encountered E_FAULT bad address E_IO on I/O errors E_MLINK too many links E_MULTIHOP multihop attempted E_NOLINK link has been severed
See Also
remove()
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.

PLEASE NOTE: 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.
Returns
E_None
On success
E_INVAL
The format of the parameters was not valid
E_ACCES
Permission denied
E_EXIST
The final node of the specified directory path already exist
E_NAMETOOLONG
The name of the specified directory path exceeds the maximum allowed length
E_NOTDIR
A component of the specified directory path already exist as file in any part of the directory path
E_ROFS
Read-only file system
E_NOSPC
No space left on device
E_DQUOT
Quota exceeded
E_FAULT
Bad address
E_IO
I/O error
E_LOOP
Too many symbolic links encountered
E_NOLINK
Link has been severed
E_invalidError
An unknown error occurred
See Also
DirectoryCreationObserver
create
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
rItem[out] On success a valid DirectoryItem.
nHint[in] With 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.
Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOMEM not enough memory for allocating structures E_NOENT no more entries in this directory E_BADF invalid oslDirectory parameter E_OVERFLOW the value too large for defined data type
See Also
DirectoryItem
rtl::OUString osl::Directory::getURL ( ) const
inline

Obtain the URL.

Returns
the URL with which this Directory instance was created.
Since
LibreOffice 4.1
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
ustrDirectoryURL[in] Full qualified URL of the volume
rInfo[out] On success it receives information about the volume.
Returns
E_None on success E_NOMEM not enough memory for allocating structures E_INVAL the format of the parameters was not valid E_NOTDIR not a directory E_NAMETOOLONG file name too long E_NOENT no such file or directory E_ACCES permission denied E_LOOP too many symbolic links encountered E_FAULT Bad address E_IO on I/O errors E_NOSYS function not implemented E_MULTIHOP multihop attempted E_NOLINK link has been severed E_INTR function call was interrupted
See Also
FileStatus
VolumeInfo
bool osl::Directory::isOpen ( )
inline

Query if directory is open.

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

Returns
true if the directory is open else false.
See Also
open()
close()
RC osl::Directory::open ( )
inline

Open a directory for enumerating its contents.

Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOENT the specified path doesn't exist E_NOTDIR the specified path is not an directory E_NOMEM not enough memory for allocating structures E_ACCES permission denied E_MFILE too many open files used by the process E_NFILE too many open files in the system E_NAMETOOLONG File name too long E_LOOP Too many symbolic links encountered
See Also
getNextItem()
close()
static RC osl::Directory::remove ( const ::rtl::OUString ustrDirectoryURL)
inlinestatic

Remove an empty directory.

Parameters
ustrDirectoryURL[in] Full qualified URL of the directory.
Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOMEM not enough memory for allocating structures E_PERM operation not permitted E_ACCES permission denied E_NOENT no such file or directory E_NOTDIR not a directory E_NOTEMPTY directory not empty E_FAULT bad address E_NAMETOOLONG file name too long E_BUSY device or resource busy E_ROFS read-only file system E_LOOP too many symbolic links encountered E_BUSY device or resource busy E_EXIST file exists E_IO on I/O errors E_MULTIHOP multihop attempted E_NOLINK link has been severed
See Also
create()
RC osl::Directory::reset ( )
inline

Resets the directory item enumeration to the beginning.

Returns
E_None on success E_INVAL the format of the parameters was not valid E_NOENT the specified path doesn't exist E_NOTDIR the specified path is not an directory E_NOMEM not enough memory for allocating structures E_ACCES permission denied E_MFILE too many open files used by the process E_NFILE too many open files in the system E_NAMETOOLONG File name too long E_LOOP Too many symbolic links encountered
See Also
open()

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