xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/Common/WorkDir.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // WorkDir.h
2 
3 #ifndef ZIP7_INC_WORK_DIR_H
4 #define ZIP7_INC_WORK_DIR_H
5 
6 #include "../../../Windows/FileDir.h"
7 
8 #include "../../Common/FileStreams.h"
9 
10 #include "ZipRegistry.h"
11 
12 FString GetWorkDir(const NWorkDir::CInfo &workDirInfo, const FString &path, FString &fileName);
13 
14 class CWorkDirTempFile  MY_UNCOPYABLE
15 {
16   FString _originalPath;
17   NWindows::NFile::NDir::CTempFile _tempFile;
18   COutFileStream *_outStreamSpec;
19 public:
20   CMyComPtr<IOutStream> OutStream;
21 
Get_OriginalFilePath()22   const FString &Get_OriginalFilePath() const { return _originalPath; }
Get_TempFilePath()23   const FString &Get_TempFilePath() const { return _tempFile.GetPath(); }
24 
25   HRESULT CreateTempFile(const FString &originalPath);
26   HRESULT MoveToOriginal(bool deleteOriginal,
27       NWindows::NFile::NDir::ICopyFileProgress *progress = NULL);
28 };
29 
30 #endif
31