mirror of
https://github.com/Xevion/easy7zip.git
synced 2026-01-31 08:24:11 -06:00
9.21
This commit is contained in:
committed by
Kornel Lesiński
parent
de4f8c22fe
commit
35596517f2
+39
-144
@@ -1,177 +1,72 @@
|
||||
// Windows/FileDir.h
|
||||
|
||||
#ifndef __WINDOWS_FILEDIR_H
|
||||
#define __WINDOWS_FILEDIR_H
|
||||
#ifndef __WINDOWS_FILE_DIR_H
|
||||
#define __WINDOWS_FILE_DIR_H
|
||||
|
||||
#include "../Common/MyString.h"
|
||||
#include "Defs.h"
|
||||
#include "FileIO.h"
|
||||
|
||||
namespace NWindows {
|
||||
namespace NFile {
|
||||
namespace NDirectory {
|
||||
|
||||
#ifdef WIN_LONG_PATH
|
||||
bool GetLongPaths(LPCWSTR s1, LPCWSTR s2, UString &d1, UString &d2);
|
||||
bool GetLongPaths(CFSTR s1, CFSTR 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 MyGetWindowsDirectory(FString &path);
|
||||
bool MyGetSystemDirectory(FString &path);
|
||||
|
||||
bool SetDirTime(LPCWSTR fileName, const FILETIME *cTime, const FILETIME *aTime, const FILETIME *mTime);
|
||||
bool SetDirTime(CFSTR fileName, const FILETIME *cTime, const FILETIME *aTime, const FILETIME *mTime);
|
||||
bool MySetFileAttributes(CFSTR fileName, DWORD fileAttributes);
|
||||
bool MyMoveFile(CFSTR existFileName, CFSTR newFileName);
|
||||
bool MyRemoveDirectory(CFSTR path);
|
||||
bool MyCreateDirectory(CFSTR path);
|
||||
bool CreateComplexDirectory(CFSTR path);
|
||||
bool DeleteFileAlways(CFSTR name);
|
||||
bool RemoveDirectoryWithSubItems(const FString &path);
|
||||
|
||||
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);
|
||||
bool MyGetFullPathName(CFSTR path, FString &resFullPath);
|
||||
bool GetFullPathAndSplit(CFSTR path, FString &resDirPrefix, FString &resFileName);
|
||||
bool GetOnlyDirPrefix(CFSTR path, FString &resDirPrefix);
|
||||
|
||||
#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 UNDER_CE
|
||||
|
||||
bool GetOnlyDirPrefix(LPCTSTR fileName, CSysString &resultName);
|
||||
bool GetOnlyName(LPCTSTR fileName, CSysString &resultName);
|
||||
#ifdef UNDER_CE
|
||||
bool MyGetFullPathName(LPCWSTR fileName, UString &resultPath);
|
||||
bool MyGetFullPathName(LPCWSTR fileName, UString &resultPath, int &fileNamePartStartIndex);
|
||||
#else
|
||||
bool MyGetShortPathName(LPCTSTR longPath, CSysString &shortPath);
|
||||
|
||||
bool MyGetFullPathName(LPCTSTR fileName, CSysString &resultPath, int &fileNamePartStartIndex);
|
||||
bool MyGetFullPathName(LPCTSTR fileName, CSysString &resultPath);
|
||||
#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
|
||||
|
||||
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 MySetCurrentDirectory(CFSTR path);
|
||||
bool MyGetCurrentDirectory(FString &resultPath);
|
||||
|
||||
#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
|
||||
bool MyGetTempPath(FString &resultPath);
|
||||
|
||||
class CTempFile
|
||||
{
|
||||
bool _mustBeDeleted;
|
||||
CSysString _fileName;
|
||||
FString _path;
|
||||
void DisableDeleting() { _mustBeDeleted = false; }
|
||||
public:
|
||||
CTempFile(): _mustBeDeleted(false) {}
|
||||
~CTempFile() { Remove(); }
|
||||
const FString &GetPath() const { return _path; }
|
||||
bool Create(CFSTR pathPrefix, NIO::COutFile *outFile); // pathPrefix is not folder prefix
|
||||
bool CreateRandomInTempFolder(CFSTR namePrefix, NIO::COutFile *outFile);
|
||||
bool Remove();
|
||||
bool MoveTo(CFSTR name, bool deleteDestBefore);
|
||||
};
|
||||
|
||||
class CTempDir
|
||||
{
|
||||
bool _mustBeDeleted;
|
||||
FString _path;
|
||||
public:
|
||||
CTempDir(): _mustBeDeleted(false) {}
|
||||
~CTempDir() { Remove(); }
|
||||
const FString &GetPath() const { return _path; }
|
||||
void DisableDeleting() { _mustBeDeleted = false; }
|
||||
UINT Create(LPCTSTR dirPath, LPCTSTR prefix, CSysString &resultPath);
|
||||
bool Create(LPCTSTR prefix, CSysString &resultPath);
|
||||
bool Create(CFSTR namePrefix) ;
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user