struct CCL::IFileSystem

Overview

File system interface <> More…

#include <ifilesystem.h>

struct IFileSystem: public CCL::IUnknown
{
    // enums

    enum ModeFlags;

    // methods

    virtual IStream*CCL_API openStream (
        UrlRef url,
        int mode = IStream::kOpenMode,
        IUnknown* context = nullptr
    ) = 0;

    virtual tbool CCL_API fileExists (UrlRef url) = 0;
    virtual tbool CCL_API getFileInfo (FileInfo& info, UrlRef url) = 0;
    virtual tbool CCL_API removeFile (UrlRef url, int mode = 0) = 0;
    virtual tbool CCL_API renameFile (UrlRef url, StringRef newName, int mode = 0) = 0;

    virtual IFileIterator*CCL_API newIterator (
        UrlRef url,
        int mode = IFileIterator::kAll
    ) = 0;

    virtual tbool CCL_API createFolder (UrlRef url) = 0;
    virtual tbool CCL_API removeFolder (UrlRef url, int mode = 0) = 0;
    virtual tbool CCL_API isCaseSensitive () = 0;
};

Inherited Members

public:
    // methods

    virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
    virtual unsigned int CCL_API retain () = 0;
    virtual unsigned int CCL_API release () = 0;

Detailed Documentation

File system interface <>

Methods

virtual IStream*CCL_API openStream (
    UrlRef url,
    int mode = IStream::kOpenMode,
    IUnknown* context = nullptr
) = 0

Open stream with given location and mode.

virtual tbool CCL_API fileExists (UrlRef url) = 0

Check if file or folder exists.

virtual tbool CCL_API getFileInfo (FileInfo& info, UrlRef url) = 0

Retrieve file information.

virtual tbool CCL_API removeFile (UrlRef url, int mode = 0) = 0

Delete file physically.

virtual tbool CCL_API renameFile (UrlRef url, StringRef newName, int mode = 0) = 0

Rename file or directory.

virtual IFileIterator*CCL_API newIterator (
    UrlRef url,
    int mode = IFileIterator::kAll
) = 0

Create new file iterator for given folder location.

virtual tbool CCL_API createFolder (UrlRef url) = 0

Create new folder.

virtual tbool CCL_API removeFolder (UrlRef url, int mode = 0) = 0

Delete folder physically.

virtual tbool CCL_API isCaseSensitive () = 0

Check if the filesystem is case sensitive.