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

Side by Side Diff: base/file_util.h

Issue 99923002: Move temp file functions to base namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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 | Annotate | Revision Log
« no previous file with comments | « base/debug/trace_event_win_unittest.cc ('k') | base/file_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains utility functions for dealing with the local 5 // This file contains utility functions for dealing with the local
6 // filesystem. 6 // filesystem.
7 7
8 #ifndef BASE_FILE_UTIL_H_ 8 #ifndef BASE_FILE_UTIL_H_
9 #define BASE_FILE_UTIL_H_ 9 #define BASE_FILE_UTIL_H_
10 10
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
205 // Get the home directory. This is more complicated than just getenv("HOME") 205 // Get the home directory. This is more complicated than just getenv("HOME")
206 // as it knows to fall back on getpwent() etc. 206 // as it knows to fall back on getpwent() etc.
207 // 207 //
208 // This function is not currently implemented on Windows or Mac because we 208 // This function is not currently implemented on Windows or Mac because we
209 // don't use it. Generally you would use one of PathService's APP_DATA 209 // don't use it. Generally you would use one of PathService's APP_DATA
210 // directories on those platforms. If we need it, this could be implemented 210 // directories on those platforms. If we need it, this could be implemented
211 // there to return the appropriate directory. 211 // there to return the appropriate directory.
212 BASE_EXPORT FilePath GetHomeDir(); 212 BASE_EXPORT FilePath GetHomeDir();
213 #endif // OS_POSIX 213 #endif // OS_POSIX
214 214
215 // Creates a temporary file. The full path is placed in |path|, and the
216 // function returns true if was successful in creating the file. The file will
217 // be empty and all handles closed after this function returns.
218 BASE_EXPORT bool CreateTemporaryFile(FilePath* path);
219
220 // Same as CreateTemporaryFile but the file is created in |dir|.
221 BASE_EXPORT bool CreateTemporaryFileInDir(const FilePath& dir,
222 FilePath* temp_file);
223
224 // Create and open a temporary file. File is opened for read/write.
225 // The full path is placed in |path|.
226 // Returns a handle to the opened file or NULL if an error occurred.
227 BASE_EXPORT FILE* CreateAndOpenTemporaryFile(FilePath* path);
228
229 // Like above but for shmem files. Only useful for POSIX.
230 // The executable flag says the file needs to support using
231 // mprotect with PROT_EXEC after mapping.
232 BASE_EXPORT FILE* CreateAndOpenTemporaryShmemFile(FilePath* path,
233 bool executable);
234
235 // Similar to CreateAndOpenTemporaryFile, but the file is created in |dir|.
236 BASE_EXPORT FILE* CreateAndOpenTemporaryFileInDir(const FilePath& dir,
237 FilePath* path);
238
239 // Create a new directory. If prefix is provided, the new directory name is in
240 // the format of prefixyyyy.
241 // NOTE: prefix is ignored in the POSIX implementation.
242 // If success, return true and output the full path of the directory created.
243 BASE_EXPORT bool CreateNewTempDirectory(const FilePath::StringType& prefix,
244 FilePath* new_temp_path);
245
246 // Create a directory within another directory.
247 // Extra characters will be appended to |prefix| to ensure that the
248 // new directory does not have the same name as an existing directory.
249 BASE_EXPORT bool CreateTemporaryDirInDir(const FilePath& base_dir,
250 const FilePath::StringType& prefix,
251 FilePath* new_dir);
252
215 } // namespace base 253 } // namespace base
216 254
217 // ----------------------------------------------------------------------------- 255 // -----------------------------------------------------------------------------
218 256
219 namespace file_util { 257 namespace file_util {
220 258
221 // Creates a temporary file. The full path is placed in |path|, and the
222 // function returns true if was successful in creating the file. The file will
223 // be empty and all handles closed after this function returns.
224 BASE_EXPORT bool CreateTemporaryFile(base::FilePath* path);
225
226 // Same as CreateTemporaryFile but the file is created in |dir|.
227 BASE_EXPORT bool CreateTemporaryFileInDir(const base::FilePath& dir,
228 base::FilePath* temp_file);
229
230 // Create and open a temporary file. File is opened for read/write.
231 // The full path is placed in |path|.
232 // Returns a handle to the opened file or NULL if an error occurred.
233 BASE_EXPORT FILE* CreateAndOpenTemporaryFile(base::FilePath* path);
234 // Like above but for shmem files. Only useful for POSIX.
235 // The executable flag says the file needs to support using
236 // mprotect with PROT_EXEC after mapping.
237 BASE_EXPORT FILE* CreateAndOpenTemporaryShmemFile(base::FilePath* path,
238 bool executable);
239 // Similar to CreateAndOpenTemporaryFile, but the file is created in |dir|.
240 BASE_EXPORT FILE* CreateAndOpenTemporaryFileInDir(const base::FilePath& dir,
241 base::FilePath* path);
242
243 // Create a new directory. If prefix is provided, the new directory name is in
244 // the format of prefixyyyy.
245 // NOTE: prefix is ignored in the POSIX implementation.
246 // If success, return true and output the full path of the directory created.
247 BASE_EXPORT bool CreateNewTempDirectory(
248 const base::FilePath::StringType& prefix,
249 base::FilePath* new_temp_path);
250
251 // Create a directory within another directory.
252 // Extra characters will be appended to |prefix| to ensure that the
253 // new directory does not have the same name as an existing directory.
254 BASE_EXPORT bool CreateTemporaryDirInDir(
255 const base::FilePath& base_dir,
256 const base::FilePath::StringType& prefix,
257 base::FilePath* new_dir);
258
259 // Creates a directory, as well as creating any parent directories, if they 259 // Creates a directory, as well as creating any parent directories, if they
260 // don't exist. Returns 'true' on successful creation, or if the directory 260 // don't exist. Returns 'true' on successful creation, or if the directory
261 // already exists. The directory is only readable by the current user. 261 // already exists. The directory is only readable by the current user.
262 // Returns true on success, leaving *error unchanged. 262 // Returns true on success, leaving *error unchanged.
263 // Returns false on failure and sets *error appropriately, if it is non-NULL. 263 // Returns false on failure and sets *error appropriately, if it is non-NULL.
264 BASE_EXPORT bool CreateDirectoryAndGetError(const base::FilePath& full_path, 264 BASE_EXPORT bool CreateDirectoryAndGetError(const base::FilePath& full_path,
265 base::PlatformFileError* error); 265 base::PlatformFileError* error);
266 266
267 // Backward-compatible convenience method for the above. 267 // Backward-compatible convenience method for the above.
268 BASE_EXPORT bool CreateDirectory(const base::FilePath& full_path); 268 BASE_EXPORT bool CreateDirectory(const base::FilePath& full_path);
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 // This function simulates Move(), but unlike Move() it works across volumes. 467 // This function simulates Move(), but unlike Move() it works across volumes.
468 // This function is not transactional. 468 // This function is not transactional.
469 BASE_EXPORT bool CopyAndDeleteDirectory(const FilePath& from_path, 469 BASE_EXPORT bool CopyAndDeleteDirectory(const FilePath& from_path,
470 const FilePath& to_path); 470 const FilePath& to_path);
471 #endif // defined(OS_WIN) 471 #endif // defined(OS_WIN)
472 472
473 } // namespace internal 473 } // namespace internal
474 } // namespace base 474 } // namespace base
475 475
476 #endif // BASE_FILE_UTIL_H_ 476 #endif // BASE_FILE_UTIL_H_
OLDNEW
« no previous file with comments | « base/debug/trace_event_win_unittest.cc ('k') | base/file_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698