1
0
This repository has been archived on 2025-10-21. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
siadrive/include/siadrive_api/filepath.h
2025-10-21 07:58:47 -05:00

63 lines
1.5 KiB
C++

#ifndef _FILEPATH_H
#define _FILEPATH_H
#include <siacommon.h>
NS_BEGIN(Sia)
NS_BEGIN(Api)
class SIADRIVE_EXPORTABLE FilePath
{
public:
FilePath();
FilePath(const FilePath& filePath);
FilePath(const SString& path);
FilePath(const FilePath& filePath1, const FilePath& filePath2);
FilePath(const FilePath& filePath1, const SString& path2);
FilePath(const SString& path1, const FilePath& filePath2);
FilePath(const SString& path1, const SString& path2);
FilePath(FilePath&& filePath);
public:
~FilePath();
public:
static const SString DirSep;
public:
static SString FinalizePath(const SString& path);
static SString GetTempDirectory();
static SString GetAppDataDirectory();
private:
#ifdef _WIN32
const ComInitWrapper cw;
#endif
SString _path;
public:
FilePath& Append(const FilePath& filePath);
FilePath& Append(const SString& path);
bool IsDirectory() const;
bool IsFile() const;
bool IsUNC() const;
bool CreateDirectory() const;
bool RemoveDirectory() const;
bool DeleteFile() const;
bool MoveFile(const FilePath& filePath);
FilePath& RemoveFileName();
FilePath& MakeAbsolute();
FilePath& SkipRoot();
FilePath& StripToFileName();
bool CreateEmptyFile();
FilePath& Resolve();
public:
FilePath& operator=(const FilePath& filePath);
FilePath& operator=(FilePath&& filePath);
SString::SChar& operator[](const size_t& idx);
const SString::SChar& operator[](const size_t& idx) const;
operator SString() const;
};
NS_END(2)
#endif //_FILEPATH_H