| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- // Windows/FileDir.h
- #ifndef __WINDOWS_FILEDIR_H
- #define __WINDOWS_FILEDIR_H
- #include "../Common/MyString.h"
- #include "Defs.h"
- namespace NWindows {
- namespace NFile {
- namespace NDirectory {
- #ifdef WIN_LONG_PATH
- bool GetLongPaths(LPCWSTR s1, LPCWSTR s2, UString &d1, UString &d2);
- #endif
- bool MyGetWindowsDirectory(CSysString &path);
- bool MyGetSystemDirectory(CSysString &path);
- #ifndef _UNICODE
- bool MyGetWindowsDirectory(UString &path);
- bool MyGetSystemDirectory(UString &path);
- #endif
- bool SetDirTime(LPCWSTR fileName, const FILETIME *creationTime, const FILETIME *lastAccessTime, const FILETIME *lastWriteTime);
- bool MySetFileAttributes(LPCTSTR fileName, DWORD fileAttributes);
- bool MyMoveFile(LPCTSTR existFileName, LPCTSTR newFileName);
- bool MyRemoveDirectory(LPCTSTR pathName);
- bool MyCreateDirectory(LPCTSTR pathName);
- bool CreateComplexDirectory(LPCTSTR pathName);
- bool DeleteFileAlways(LPCTSTR name);
- bool RemoveDirectoryWithSubItems(const CSysString &path);
- #ifndef _UNICODE
- bool MySetFileAttributes(LPCWSTR fileName, DWORD fileAttributes);
- bool MyMoveFile(LPCWSTR existFileName, LPCWSTR newFileName);
- bool MyRemoveDirectory(LPCWSTR pathName);
- bool MyCreateDirectory(LPCWSTR pathName);
- bool CreateComplexDirectory(LPCWSTR pathName);
- bool DeleteFileAlways(LPCWSTR name);
- bool RemoveDirectoryWithSubItems(const UString &path);
- #endif
- #ifndef _WIN32_WCE
- bool MyGetShortPathName(LPCTSTR longPath, CSysString &shortPath);
- bool MyGetFullPathName(LPCTSTR fileName, CSysString &resultPath,
- int &fileNamePartStartIndex);
- bool MyGetFullPathName(LPCTSTR fileName, CSysString &resultPath);
- bool GetOnlyName(LPCTSTR fileName, CSysString &resultName);
- bool GetOnlyDirPrefix(LPCTSTR fileName, CSysString &resultName);
- #ifndef _UNICODE
- bool MyGetFullPathName(LPCWSTR fileName, UString &resultPath,
- int &fileNamePartStartIndex);
- bool MyGetFullPathName(LPCWSTR fileName, UString &resultPath);
- bool GetOnlyName(LPCWSTR fileName, UString &resultName);
- bool GetOnlyDirPrefix(LPCWSTR fileName, UString &resultName);
- #endif
- inline bool MySetCurrentDirectory(LPCTSTR path)
- { return BOOLToBool(::SetCurrentDirectory(path)); }
- bool MyGetCurrentDirectory(CSysString &resultPath);
- #ifndef _UNICODE
- bool MySetCurrentDirectory(LPCWSTR path);
- bool MyGetCurrentDirectory(UString &resultPath);
- #endif
- #endif
- bool MySearchPath(LPCTSTR path, LPCTSTR fileName, LPCTSTR extension,
- CSysString &resultPath, UINT32 &filePart);
- #ifndef _UNICODE
- bool MySearchPath(LPCWSTR path, LPCWSTR fileName, LPCWSTR extension,
- UString &resultPath, UINT32 &filePart);
- #endif
- inline bool MySearchPath(LPCTSTR path, LPCTSTR fileName, LPCTSTR extension,
- CSysString &resultPath)
- {
- UINT32 value;
- return MySearchPath(path, fileName, extension, resultPath, value);
- }
- #ifndef _UNICODE
- inline bool MySearchPath(LPCWSTR path, LPCWSTR fileName, LPCWSTR extension,
- UString &resultPath)
- {
- UINT32 value;
- return MySearchPath(path, fileName, extension, resultPath, value);
- }
- #endif
- bool MyGetTempPath(CSysString &resultPath);
- #ifndef _UNICODE
- bool MyGetTempPath(UString &resultPath);
- #endif
- UINT MyGetTempFileName(LPCTSTR dirPath, LPCTSTR prefix, CSysString &resultPath);
- #ifndef _UNICODE
- UINT MyGetTempFileName(LPCWSTR dirPath, LPCWSTR prefix, UString &resultPath);
- #endif
- class CTempFile
- {
- bool _mustBeDeleted;
- CSysString _fileName;
- public:
- CTempFile(): _mustBeDeleted(false) {}
- ~CTempFile() { Remove(); }
- void DisableDeleting() { _mustBeDeleted = false; }
- UINT Create(LPCTSTR dirPath, LPCTSTR prefix, CSysString &resultPath);
- bool Create(LPCTSTR prefix, CSysString &resultPath);
- bool Remove();
- };
- #ifdef _UNICODE
- typedef CTempFile CTempFileW;
- #else
- class CTempFileW
- {
- bool _mustBeDeleted;
- UString _fileName;
- public:
- CTempFileW(): _mustBeDeleted(false) {}
- ~CTempFileW() { Remove(); }
- void DisableDeleting() { _mustBeDeleted = false; }
- UINT Create(LPCWSTR dirPath, LPCWSTR prefix, UString &resultPath);
- bool Create(LPCWSTR prefix, UString &resultPath);
- bool Remove();
- };
- #endif
- bool CreateTempDirectory(LPCTSTR prefixChars, CSysString &dirName);
- class CTempDirectory
- {
- bool _mustBeDeleted;
- CSysString _tempDir;
- public:
- const CSysString &GetPath() const { return _tempDir; }
- CTempDirectory(): _mustBeDeleted(false) {}
- ~CTempDirectory() { Remove(); }
- bool Create(LPCTSTR prefix) ;
- bool Remove()
- {
- if (!_mustBeDeleted)
- return true;
- _mustBeDeleted = !RemoveDirectoryWithSubItems(_tempDir);
- return (!_mustBeDeleted);
- }
- void DisableDeleting() { _mustBeDeleted = false; }
- };
- #ifdef _UNICODE
- typedef CTempDirectory CTempDirectoryW;
- #else
- class CTempDirectoryW
- {
- bool _mustBeDeleted;
- UString _tempDir;
- public:
- const UString &GetPath() const { return _tempDir; }
- CTempDirectoryW(): _mustBeDeleted(false) {}
- ~CTempDirectoryW() { Remove(); }
- bool Create(LPCWSTR prefix) ;
- bool Remove()
- {
- if (!_mustBeDeleted)
- return true;
- _mustBeDeleted = !RemoveDirectoryWithSubItems(_tempDir);
- return (!_mustBeDeleted);
- }
- void DisableDeleting() { _mustBeDeleted = false; }
- };
- #endif
- }}}
- #endif
|