普通文本  |  36行  |  785 B

// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "mojo/tools/package_manager/unpacker.h"

#include "base/files/file_util.h"
#include "base/logging.h"
#include "third_party/zlib/google/zip.h"

namespace mojo {

Unpacker::Unpacker() {
}

Unpacker::~Unpacker() {
  if (!dir_.empty())
    DeleteFile(dir_, true);
}

bool Unpacker::Unpack(const base::FilePath& zip_file) {
  DCHECK(zip_file_.empty());
  zip_file_ = zip_file;

  DCHECK(dir_.empty());
  if (!CreateNewTempDirectory(base::FilePath::StringType(), &dir_))
    return false;
  if (!zip::Unzip(zip_file, dir_)) {
    dir_ = base::FilePath();
    return false;
  }
  return true;
}

}  // namespace mojo