mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
178 lines
5.2 KiB
C++
178 lines
5.2 KiB
C++
// 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 *cTime, const FILETIME *aTime, const FILETIME *mTime);
|
|
|
|
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
|
|
|
|
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
|
|
|
|
#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
|