1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
|
// Windows/FileDir.h
#ifndef __WINDOWS_FILEDIR_H
#define __WINDOWS_FILEDIR_H
#include "../Common/MyString.h"
#include "Defs.h"
/* GetFullPathName for 7zAES.cpp */
DWORD WINAPI GetFullPathName( LPCSTR name, DWORD len, LPSTR buffer, LPSTR *lastpart );
namespace NWindows {
namespace NFile {
namespace NDirectory {
bool SetDirTime(LPCWSTR fileName, const FILETIME *creationTime, const FILETIME *lastAccessTime, const FILETIME *lastWriteTime);
bool MySetFileAttributes(LPCTSTR fileName, DWORD fileAttributes);
#ifndef _UNICODE
bool MySetFileAttributes(LPCWSTR fileName, DWORD fileAttributes);
#endif
bool MyMoveFile(LPCTSTR existFileName, LPCTSTR newFileName);
#ifndef _UNICODE
bool MyMoveFile(LPCWSTR existFileName, LPCWSTR newFileName);
#endif
bool MyRemoveDirectory(LPCTSTR pathName);
#ifndef _UNICODE
bool MyRemoveDirectory(LPCWSTR pathName);
#endif
bool MyCreateDirectory(LPCTSTR pathName);
bool CreateComplexDirectory(LPCTSTR pathName);
#ifndef _UNICODE
bool MyCreateDirectory(LPCWSTR pathName);
bool CreateComplexDirectory(LPCWSTR pathName);
#endif
bool DeleteFileAlways(LPCTSTR name);
#ifndef _UNICODE
bool DeleteFileAlways(LPCWSTR name);
#endif
bool RemoveDirectoryWithSubItems(const UString &path);
#ifndef _WIN32_WCE
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);
#endif
#endif
bool MySetCurrentDirectory(LPCWSTR path);
bool MyGetCurrentDirectory(CSysString &resultPath);
bool MySearchPath(LPCWSTR path, LPCWSTR fileName, LPCWSTR extension, UString &resultPath);
bool MyGetTempPath(CSysString &resultPath);
#ifndef _UNICODE
bool MyGetTempPath(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;
#endif
bool CreateTempDirectory(LPCWSTR prefixChars, UString &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;
#endif
}}}
#endif
|