| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 11 matching lines...) Expand all Loading... |
| 22 #include <stack> | 22 #include <stack> |
| 23 #include <string> | 23 #include <string> |
| 24 #include <vector> | 24 #include <vector> |
| 25 | 25 |
| 26 #include "base/basictypes.h" | 26 #include "base/basictypes.h" |
| 27 #include "base/file_path.h" | 27 #include "base/file_path.h" |
| 28 | 28 |
| 29 namespace file_util { | 29 namespace file_util { |
| 30 | 30 |
| 31 //----------------------------------------------------------------------------- | 31 //----------------------------------------------------------------------------- |
| 32 // Constants | |
| 33 | |
| 34 #if defined(OS_WIN) | |
| 35 // The use of this constant is deprecated. Instead use file_util or FilePath | |
| 36 // functions (Append, TrimTrailingSeparator, etc.), or use | |
| 37 // FilePath::kSeparator[0]. | |
| 38 extern const wchar_t kPathSeparator; | |
| 39 #endif | |
| 40 | |
| 41 //----------------------------------------------------------------------------- | |
| 42 // Functions that operate purely on a path string w/o touching the filesystem: | 32 // Functions that operate purely on a path string w/o touching the filesystem: |
| 43 | 33 |
| 44 // Returns a vector of all of the components of the provided path. | 34 // Returns a vector of all of the components of the provided path. |
| 45 void PathComponents(const FilePath& path, | 35 void PathComponents(const FilePath& path, |
| 46 std::vector<FilePath::StringType>* components); | 36 std::vector<FilePath::StringType>* components); |
| 47 #if defined(OS_WIN) | 37 #if defined(OS_WIN) |
| 48 // Deprecated temporary compatibility function. | 38 // Deprecated temporary compatibility function. |
| 49 void PathComponents(const std::wstring& path, | 39 void PathComponents(const std::wstring& path, |
| 50 std::vector<std::wstring>* components); | 40 std::vector<std::wstring>* components); |
| 51 #endif | 41 #endif |
| (...skipping 21 matching lines...) Expand all Loading... |
| 73 // If 'dir' is a root directory, the result becomes empty string. | 63 // If 'dir' is a root directory, the result becomes empty string. |
| 74 // Deprecated. Use FilePath::DirName instead. | 64 // Deprecated. Use FilePath::DirName instead. |
| 75 void UpOneDirectoryOrEmpty(std::wstring* dir); | 65 void UpOneDirectoryOrEmpty(std::wstring* dir); |
| 76 | 66 |
| 77 // Strips the filename component from the end of 'path'. If path ends with a | 67 // Strips the filename component from the end of 'path'. If path ends with a |
| 78 // separator, then just drop the separator. | 68 // separator, then just drop the separator. |
| 79 // Deprecated. Use FilePath::DirName instead. | 69 // Deprecated. Use FilePath::DirName instead. |
| 80 void TrimFilename(std::wstring* path); | 70 void TrimFilename(std::wstring* path); |
| 81 | 71 |
| 82 // Returns the filename portion of 'path', without any leading \'s or /'s. | 72 // Returns the filename portion of 'path', without any leading \'s or /'s. |
| 73 // Deprecated. Use FilePath::BaseName instead. |
| 83 std::wstring GetFilenameFromPath(const std::wstring& path); | 74 std::wstring GetFilenameFromPath(const std::wstring& path); |
| 84 | 75 |
| 85 // Returns "jpg" for path "C:\pics\jojo.jpg", or an empty string if | 76 // Returns "jpg" for path "C:\pics\jojo.jpg", or an empty string if |
| 86 // the file has no extension. | 77 // the file has no extension. |
| 87 std::wstring GetFileExtensionFromPath(const std::wstring& path); | 78 std::wstring GetFileExtensionFromPath(const std::wstring& path); |
| 88 | 79 |
| 89 // Returns 'jojo' for path "C:\pics\jojo.jpg". | 80 // Returns 'jojo' for path "C:\pics\jojo.jpg". |
| 90 std::wstring GetFilenameWithoutExtensionFromPath(const std::wstring& path); | 81 std::wstring GetFilenameWithoutExtensionFromPath(const std::wstring& path); |
| 91 | 82 |
| 92 // Returns the directory component of a path, without the trailing | 83 // Returns the directory component of a path, without the trailing |
| 93 // path separator, or an empty string on error. The function does not | 84 // path separator, or an empty string on error. The function does not |
| 94 // check for the existence of the path, so if it is passed a directory | 85 // check for the existence of the path, so if it is passed a directory |
| 95 // without the trailing \, it will interpret the last component of the | 86 // without the trailing \, it will interpret the last component of the |
| 96 // path as a file and chomp it. This does not support relative paths. | 87 // path as a file and chomp it. This does not support relative paths. |
| 97 // Examples: | 88 // Examples: |
| 98 // path == "C:\pics\jojo.jpg", returns "C:\pics" | 89 // path == "C:\pics\jojo.jpg", returns "C:\pics" |
| 99 // path == "C:\Windows\system32\", returns "C:\Windows\system32" | 90 // path == "C:\Windows\system32\", returns "C:\Windows\system32" |
| 100 // path == "C:\Windows\system32", returns "C:\Windows" | 91 // path == "C:\Windows\system32", returns "C:\Windows" |
| 101 std::wstring GetDirectoryFromPath(const std::wstring& path); | 92 std::wstring GetDirectoryFromPath(const std::wstring& path); |
| 102 | 93 |
| 103 // Appends new_ending to path, adding a separator between the two if necessary. | 94 // Appends new_ending to path, adding a separator between the two if necessary. |
| 104 void AppendToPath(std::wstring* path, const std::wstring& new_ending); | 95 void AppendToPath(std::wstring* path, const std::wstring& new_ending); |
| 105 | 96 |
| 106 // Convert provided relative path into an absolute path. Returns false on | 97 // Convert provided relative path into an absolute path. Returns false on |
| 107 // error. | 98 // error. |
| 108 bool AbsolutePath(FilePath* path); | 99 bool AbsolutePath(FilePath* path); |
| 109 // Deprecated temporary compatibility function. | 100 // Deprecated temporary compatibility function. |
| 110 bool AbsolutePath(std::wstring* path); | 101 bool AbsolutePath(std::wstring* path); |
| 111 | 102 |
| 112 // TODO(port): create FilePath versions of these functions, and remove this | |
| 113 // platform define. | |
| 114 #if defined(OS_WIN) | |
| 115 // Inserts |suffix| after the file name portion of |path| but before the | 103 // Inserts |suffix| after the file name portion of |path| but before the |
| 116 // extension. | 104 // extension. |
| 117 // Examples: | 105 // Examples: |
| 118 // path == "C:\pics\jojo.jpg" suffix == " (1)", returns "C:\pics\jojo (1).jpg" | 106 // path == "C:\pics\jojo.jpg" suffix == " (1)", returns "C:\pics\jojo (1).jpg" |
| 119 // path == "jojo.jpg" suffix == " (1)", returns "jojo (1).jpg" | 107 // path == "jojo.jpg" suffix == " (1)", returns "jojo (1).jpg" |
| 120 // path == "C:\pics\jojo" suffix == " (1)", returns "C:\pics\jojo (1)" | 108 // path == "C:\pics\jojo" suffix == " (1)", returns "C:\pics\jojo (1)" |
| 121 // path == "C:\pics.old\jojo" suffix == " (1)", returns "C:\pics.old\jojo (1)" | 109 // path == "C:\pics.old\jojo" suffix == " (1)", returns "C:\pics.old\jojo (1)" |
| 122 void InsertBeforeExtension(std::wstring* path, const std::wstring& suffix); | 110 void InsertBeforeExtension(FilePath* path, const FilePath::StringType& suffix); |
| 123 | 111 |
| 124 // Replaces the extension of |file_name| with |extension|. If |file_name| | 112 // Replaces the extension of |file_name| with |extension|. If |file_name| |
| 125 // does not have an extension, them |extension| is added. If |extension| is | 113 // does not have an extension, them |extension| is added. If |extension| is |
| 126 // empty, then the extension is removed from |file_name|. | 114 // empty, then the extension is removed from |file_name|. |
| 115 void ReplaceExtension(FilePath* file_name, |
| 116 const FilePath::StringType& extension); |
| 117 |
| 118 #if defined(OS_WIN) |
| 119 // Deprecated temporary compatibility functions. |
| 120 void InsertBeforeExtension(std::wstring* path, const std::wstring& suffix); |
| 127 void ReplaceExtension(std::wstring* file_name, const std::wstring& extension); | 121 void ReplaceExtension(std::wstring* file_name, const std::wstring& extension); |
| 128 #endif | 122 #endif |
| 129 | 123 |
| 130 // Replaces characters in 'file_name' that are illegal for file names with | 124 // Replaces characters in 'file_name' that are illegal for file names with |
| 131 // 'replace_char'. 'file_name' must not be a full or relative path, but just the | 125 // 'replace_char'. 'file_name' must not be a full or relative path, but just the |
| 132 // file name component. Any leading or trailing whitespace in 'file_name' is | 126 // file name component. Any leading or trailing whitespace in 'file_name' is |
| 133 // removed. | 127 // removed. |
| 134 // Example: | 128 // Example: |
| 135 // file_name == "bad:file*name?.txt", changed to: "bad-file-name-.txt" when | 129 // file_name == "bad:file*name?.txt", changed to: "bad-file-name-.txt" when |
| 136 // 'replace_char' is '-'. | 130 // 'replace_char' is '-'. |
| (...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 421 | 415 |
| 422 // Renames a file using the SHFileOperation API to ensure that the target file | 416 // Renames a file using the SHFileOperation API to ensure that the target file |
| 423 // gets the correct default security descriptor in the new path. | 417 // gets the correct default security descriptor in the new path. |
| 424 bool RenameFileAndResetSecurityDescriptor( | 418 bool RenameFileAndResetSecurityDescriptor( |
| 425 const std::wstring& source_file_path, | 419 const std::wstring& source_file_path, |
| 426 const std::wstring& target_file_path); | 420 const std::wstring& target_file_path); |
| 427 | 421 |
| 428 } // namespace file_util | 422 } // namespace file_util |
| 429 | 423 |
| 430 #endif // BASE_FILE_UTIL_H_ | 424 #endif // BASE_FILE_UTIL_H_ |
| OLD | NEW |