1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_INSTALLER_UTIL_LZMA_UTIL_H_
6 #define CHROME_INSTALLER_UTIL_LZMA_UTIL_H_
13 #include "base/basictypes.h"
19 // This is a utility class that acts as a wrapper around LZMA SDK library
22 // Utility method that does the job of calling OpenArchive(), UnPack()
23 // and CloseArchive() in order. Returns error code (NO_ERROR if successful).
24 static int32
UnPackArchive(const std::wstring
& archive
,
25 const std::wstring
& output_dir
,
26 std::wstring
* output_file
);
31 DWORD
OpenArchive(const std::wstring
& archivePath
);
33 // Unpacks the archive to the given location
34 DWORD
UnPack(const std::wstring
& location
);
36 // Unpacks the archive to the given location and returns the last file
37 // extracted from archive. |single_file| is set to true iff only a single
38 // file is extracted from archive.
39 DWORD
UnPack(const std::wstring
& location
,
40 std::wstring
* output_file
);
45 bool CreateDirectory(const base::FilePath
& dir
);
48 HANDLE archive_handle_
;
49 std::set
<std::wstring
> directories_created_
;
51 DISALLOW_COPY_AND_ASSIGN(LzmaUtil
);
54 #endif // CHROME_INSTALLER_UTIL_LZMA_UTIL_H_