Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: base/files/scoped_temp_dir.cc

Issue 1647803004: Move base to DEPS (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/files/scoped_temp_dir.h ('k') | base/files/scoped_temp_dir_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 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.
4
5 #include "base/files/scoped_temp_dir.h"
6
7 #include "base/files/file_util.h"
8 #include "base/logging.h"
9
10 namespace base {
11
12 ScopedTempDir::ScopedTempDir() {
13 }
14
15 ScopedTempDir::~ScopedTempDir() {
16 if (!path_.empty() && !Delete())
17 DLOG(WARNING) << "Could not delete temp dir in dtor.";
18 }
19
20 bool ScopedTempDir::CreateUniqueTempDir() {
21 if (!path_.empty())
22 return false;
23
24 // This "scoped_dir" prefix is only used on Windows and serves as a template
25 // for the unique name.
26 if (!base::CreateNewTempDirectory(FILE_PATH_LITERAL("scoped_dir"), &path_))
27 return false;
28
29 return true;
30 }
31
32 bool ScopedTempDir::CreateUniqueTempDirUnderPath(const FilePath& base_path) {
33 if (!path_.empty())
34 return false;
35
36 // If |base_path| does not exist, create it.
37 if (!base::CreateDirectory(base_path))
38 return false;
39
40 // Create a new, uniquely named directory under |base_path|.
41 if (!base::CreateTemporaryDirInDir(base_path,
42 FILE_PATH_LITERAL("scoped_dir_"),
43 &path_))
44 return false;
45
46 return true;
47 }
48
49 bool ScopedTempDir::Set(const FilePath& path) {
50 if (!path_.empty())
51 return false;
52
53 if (!DirectoryExists(path) && !base::CreateDirectory(path))
54 return false;
55
56 path_ = path;
57 return true;
58 }
59
60 bool ScopedTempDir::Delete() {
61 if (path_.empty())
62 return false;
63
64 bool ret = base::DeleteFile(path_, true);
65 if (ret) {
66 // We only clear the path if deleted the directory.
67 path_.clear();
68 }
69
70 return ret;
71 }
72
73 FilePath ScopedTempDir::Take() {
74 FilePath ret = path_;
75 path_ = FilePath();
76 return ret;
77 }
78
79 bool ScopedTempDir::IsValid() const {
80 return !path_.empty() && DirectoryExists(path_);
81 }
82
83 } // namespace base
OLDNEW
« no previous file with comments | « base/files/scoped_temp_dir.h ('k') | base/files/scoped_temp_dir_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698