|
|
1.1 root 1: /* 1.1.1.6 ! root 2: Copyright (c) 2008 TrueCrypt Developers Association. All rights reserved. 1.1 root 3: 1.1.1.6 ! root 4: Governed by the TrueCrypt License 2.8 the full text of which is contained in ! 5: the file License.txt included in TrueCrypt binary and source code distribution ! 6: packages. 1.1 root 7: */ 8: 9: #ifndef TC_HEADER_Platform_FilesystemPath 10: #define TC_HEADER_Platform_FilesystemPath 11: 12: #include "PlatformBase.h" 1.1.1.3 root 13: #include "Platform/User.h" 1.1 root 14: #include "SharedPtr.h" 15: #include "StringConverter.h" 16: 17: namespace TrueCrypt 18: { 19: struct FilesystemPathType 20: { 21: enum Enum 22: { 23: Unknown, 24: File, 25: Directory, 26: SymbolickLink, 27: BlockDevice, 28: CharacterDevice 29: }; 30: }; 31: 32: class FilesystemPath 33: { 34: public: 35: FilesystemPath () { } 36: FilesystemPath (const char *path) : Path (StringConverter::ToWide (path)) { } 37: FilesystemPath (string path) : Path (StringConverter::ToWide (path)) { } 38: FilesystemPath (const wchar_t *path) : Path (path) { } 39: FilesystemPath (wstring path) : Path (path) { } 40: virtual ~FilesystemPath () { } 41: 42: bool operator== (const FilesystemPath &other) const { return Path == other.Path; } 43: bool operator!= (const FilesystemPath &other) const { return Path != other.Path; } 44: operator string () const { return StringConverter::ToSingle (Path); } 45: operator wstring () const { return Path; } 46: 47: void Delete () const; 1.1.1.3 root 48: UserId GetOwner () const; 1.1 root 49: FilesystemPathType::Enum GetType () const; 50: bool IsBlockDevice () const throw () { try { return GetType() == FilesystemPathType::BlockDevice; } catch (...) { return false; }; } 51: bool IsCharacterDevice () const throw () { try { return GetType() == FilesystemPathType::CharacterDevice; } catch (...) { return false; }; } 52: bool IsDevice () const throw () { return IsBlockDevice() || IsCharacterDevice(); } 53: bool IsDirectory () const throw () { try { return GetType() == FilesystemPathType::Directory; } catch (...) { return false; } } 54: bool IsEmpty () const throw () { try { return Path.empty(); } catch (...) { return false; } } 55: bool IsFile () const throw () { try { return GetType() == FilesystemPathType::File; } catch (...) { return false; } } 1.1.1.3 root 56: FilesystemPath ToBaseName () const; 57: FilesystemPath ToHostDriveOfPartition () const; 58: 1.1 root 59: static const int MaxSize = 260; 60: 61: protected: 62: wstring Path; 63: }; 64: 65: typedef FilesystemPath DevicePath; 66: typedef FilesystemPath DirectoryPath; 67: typedef FilesystemPath FilePath; 68: 69: typedef list < shared_ptr <DirectoryPath> > DirectoryPathList; 70: typedef list < shared_ptr <FilePath> > FilePathList; 71: } 72: 73: #endif // TC_HEADER_Platform_FilesystemPath
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.