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 |
11 #include "build/build_config.h" | 11 #include "build/build_config.h" |
12 | 12 |
13 #if defined(OS_WIN) | 13 #if defined(OS_WIN) |
14 #include <windows.h> | 14 #include <windows.h> |
15 #elif defined(OS_POSIX) | 15 #elif defined(OS_POSIX) |
16 // Keep the order as in fts(3): fts.h requires types defined in sys/types.h | 16 // Keep the order as in fts(3): fts.h requires types defined in sys/types.h |
17 #include <sys/types.h> | 17 #include <sys/types.h> |
18 #include <sys/stat.h> | 18 #include <sys/stat.h> |
19 #include <fts.h> | 19 #include <fts.h> |
20 #endif | 20 #endif |
21 | 21 |
22 #include <stdio.h> | 22 #include <stdio.h> |
23 | 23 |
24 #include <stack> | 24 #include <stack> |
25 #include <string> | 25 #include <string> |
26 #include <vector> | 26 #include <vector> |
27 | 27 |
28 #include "base/basictypes.h" | 28 #include "base/basictypes.h" |
| 29 #include "base/file_path.h" |
29 #include "base/scoped_ptr.h" | 30 #include "base/scoped_ptr.h" |
30 #include "base/file_path.h" | 31 #include "base/string16.h" |
31 | 32 |
32 namespace base { | 33 namespace base { |
33 class Time; | 34 class Time; |
34 } | 35 } |
35 | 36 |
36 namespace file_util { | 37 namespace file_util { |
37 | 38 |
38 //----------------------------------------------------------------------------- | 39 //----------------------------------------------------------------------------- |
39 // Functions that operate purely on a path string w/o touching the filesystem: | 40 // Functions that operate purely on a path string w/o touching the filesystem: |
40 | 41 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 111 |
111 // Replaces characters in 'file_name' that are illegal for file names with | 112 // Replaces characters in 'file_name' that are illegal for file names with |
112 // 'replace_char'. 'file_name' must not be a full or relative path, but just the | 113 // 'replace_char'. 'file_name' must not be a full or relative path, but just the |
113 // file name component. Any leading or trailing whitespace in 'file_name' is | 114 // file name component. Any leading or trailing whitespace in 'file_name' is |
114 // removed. | 115 // removed. |
115 // Example: | 116 // Example: |
116 // file_name == "bad:file*name?.txt", changed to: "bad-file-name-.txt" when | 117 // file_name == "bad:file*name?.txt", changed to: "bad-file-name-.txt" when |
117 // 'replace_char' is '-'. | 118 // 'replace_char' is '-'. |
118 void ReplaceIllegalCharacters(std::wstring* file_name, int replace_char); | 119 void ReplaceIllegalCharacters(std::wstring* file_name, int replace_char); |
119 | 120 |
| 121 // Returns true if file_name does not have any illegal character. The input |
| 122 // param has the same restriction as that for ReplaceIllegalCharacters. |
| 123 bool IsFilenameLegal(const string16& file_name); |
| 124 |
120 //----------------------------------------------------------------------------- | 125 //----------------------------------------------------------------------------- |
121 // Functions that involve filesystem access or modification: | 126 // Functions that involve filesystem access or modification: |
122 | 127 |
123 // created on or after the given |file_time|. Doesn't count ".." or ".". | 128 // created on or after the given |file_time|. Doesn't count ".." or ".". |
124 // | 129 // |
125 // Note for POSIX environments: a file created before |file_time| | 130 // Note for POSIX environments: a file created before |file_time| |
126 // can be mis-detected as a newer file due to low precision of | 131 // can be mis-detected as a newer file due to low precision of |
127 // timestmap of file creation time. If you need to avoid such | 132 // timestmap of file creation time. If you need to avoid such |
128 // mis-detection perfectly, you should wait one second before | 133 // mis-detection perfectly, you should wait one second before |
129 // obtaining |file_time|. | 134 // obtaining |file_time|. |
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 | 530 |
526 // Renames a file using the SHFileOperation API to ensure that the target file | 531 // Renames a file using the SHFileOperation API to ensure that the target file |
527 // gets the correct default security descriptor in the new path. | 532 // gets the correct default security descriptor in the new path. |
528 bool RenameFileAndResetSecurityDescriptor( | 533 bool RenameFileAndResetSecurityDescriptor( |
529 const FilePath& source_file_path, | 534 const FilePath& source_file_path, |
530 const FilePath& target_file_path); | 535 const FilePath& target_file_path); |
531 | 536 |
532 } // namespace file_util | 537 } // namespace file_util |
533 | 538 |
534 #endif // BASE_FILE_UTIL_H_ | 539 #endif // BASE_FILE_UTIL_H_ |
OLD | NEW |