OLD | NEW |
1 // Copyright (c) 2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 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 // FilePath is a container for pathnames stored in a platform's native string | 5 // FilePath is a container for pathnames stored in a platform's native string |
6 // type, providing containers for manipulation in according with the | 6 // type, providing containers for manipulation in according with the |
7 // platform's conventions for pathnames. It supports the following path | 7 // platform's conventions for pathnames. It supports the following path |
8 // types: | 8 // types: |
9 // | 9 // |
10 // POSIX Windows | 10 // POSIX Windows |
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 FilePath RemoveExtension() const; | 180 FilePath RemoveExtension() const; |
181 | 181 |
182 // Inserts |suffix| after the file name portion of |path| but before the | 182 // Inserts |suffix| after the file name portion of |path| but before the |
183 // extension. Returns "" if BaseName() == "." or "..". | 183 // extension. Returns "" if BaseName() == "." or "..". |
184 // Examples: | 184 // Examples: |
185 // path == "C:\pics\jojo.jpg" suffix == " (1)", returns "C:\pics\jojo (1).jpg" | 185 // path == "C:\pics\jojo.jpg" suffix == " (1)", returns "C:\pics\jojo (1).jpg" |
186 // path == "jojo.jpg" suffix == " (1)", returns "jojo (1).jpg" | 186 // path == "jojo.jpg" suffix == " (1)", returns "jojo (1).jpg" |
187 // path == "C:\pics\jojo" suffix == " (1)", returns "C:\pics\jojo (1)" | 187 // path == "C:\pics\jojo" suffix == " (1)", returns "C:\pics\jojo (1)" |
188 // path == "C:\pics.old\jojo" suffix == " (1)", returns "C:\pics.old\jojo (1)" | 188 // path == "C:\pics.old\jojo" suffix == " (1)", returns "C:\pics.old\jojo (1)" |
189 FilePath InsertBeforeExtension(const StringType& suffix) const; | 189 FilePath InsertBeforeExtension(const StringType& suffix) const; |
190 FilePath InsertBeforeExtensionASCII(const StringPiece& suffix) const; | 190 FilePath InsertBeforeExtensionASCII(const base::StringPiece& suffix) const; |
191 | 191 |
192 // Replaces the extension of |file_name| with |extension|. If |file_name| | 192 // Replaces the extension of |file_name| with |extension|. If |file_name| |
193 // does not have an extension, them |extension| is added. If |extension| is | 193 // does not have an extension, them |extension| is added. If |extension| is |
194 // empty, then the extension is removed from |file_name|. | 194 // empty, then the extension is removed from |file_name|. |
195 // Returns "" if BaseName() == "." or "..". | 195 // Returns "" if BaseName() == "." or "..". |
196 FilePath ReplaceExtension(const StringType& extension) const; | 196 FilePath ReplaceExtension(const StringType& extension) const; |
197 | 197 |
198 // Returns true if the file path matches the specified extension. The test is | 198 // Returns true if the file path matches the specified extension. The test is |
199 // case insensitive. Don't forget the leading period if appropriate. | 199 // case insensitive. Don't forget the leading period if appropriate. |
200 bool MatchesExtension(const StringType& extension) const; | 200 bool MatchesExtension(const StringType& extension) const; |
201 | 201 |
202 // Returns a FilePath by appending a separator and the supplied path | 202 // Returns a FilePath by appending a separator and the supplied path |
203 // component to this object's path. Append takes care to avoid adding | 203 // component to this object's path. Append takes care to avoid adding |
204 // excessive separators if this object's path already ends with a separator. | 204 // excessive separators if this object's path already ends with a separator. |
205 // If this object's path is kCurrentDirectory, a new FilePath corresponding | 205 // If this object's path is kCurrentDirectory, a new FilePath corresponding |
206 // only to |component| is returned. |component| must be a relative path; | 206 // only to |component| is returned. |component| must be a relative path; |
207 // it is an error to pass an absolute path. | 207 // it is an error to pass an absolute path. |
208 FilePath Append(const StringType& component) const WARN_UNUSED_RESULT; | 208 FilePath Append(const StringType& component) const WARN_UNUSED_RESULT; |
209 FilePath Append(const FilePath& component) const WARN_UNUSED_RESULT; | 209 FilePath Append(const FilePath& component) const WARN_UNUSED_RESULT; |
210 | 210 |
211 // Although Windows StringType is std::wstring, since the encoding it uses for | 211 // Although Windows StringType is std::wstring, since the encoding it uses for |
212 // paths is well defined, it can handle ASCII path components as well. | 212 // paths is well defined, it can handle ASCII path components as well. |
213 // Mac uses UTF8, and since ASCII is a subset of that, it works there as well. | 213 // Mac uses UTF8, and since ASCII is a subset of that, it works there as well. |
214 // On Linux, although it can use any 8-bit encoding for paths, we assume that | 214 // On Linux, although it can use any 8-bit encoding for paths, we assume that |
215 // ASCII is a valid subset, regardless of the encoding, since many operating | 215 // ASCII is a valid subset, regardless of the encoding, since many operating |
216 // system paths will always be ASCII. | 216 // system paths will always be ASCII. |
217 FilePath AppendASCII(const StringPiece& component) const WARN_UNUSED_RESULT; | 217 FilePath AppendASCII(const base::StringPiece& component) |
| 218 const WARN_UNUSED_RESULT; |
218 | 219 |
219 // Returns true if this FilePath contains an absolute path. On Windows, an | 220 // Returns true if this FilePath contains an absolute path. On Windows, an |
220 // absolute path begins with either a drive letter specification followed by | 221 // absolute path begins with either a drive letter specification followed by |
221 // a separator character, or with two separator characters. On POSIX | 222 // a separator character, or with two separator characters. On POSIX |
222 // platforms, an absolute path begins with a separator character. | 223 // platforms, an absolute path begins with a separator character. |
223 bool IsAbsolute() const; | 224 bool IsAbsolute() const; |
224 | 225 |
225 // Returns a copy of this FilePath that does not end with a trailing | 226 // Returns a copy of this FilePath that does not end with a trailing |
226 // separator. | 227 // separator. |
227 FilePath StripTrailingSeparators() const; | 228 FilePath StripTrailingSeparators() const; |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 namespace stdext { | 280 namespace stdext { |
280 | 281 |
281 inline size_t hash_value(const FilePath& f) { | 282 inline size_t hash_value(const FilePath& f) { |
282 return hash_value(f.value()); | 283 return hash_value(f.value()); |
283 } | 284 } |
284 | 285 |
285 } // namespace stdext | 286 } // namespace stdext |
286 #endif // COMPILER | 287 #endif // COMPILER |
287 | 288 |
288 #endif // BASE_FILE_PATH_H_ | 289 #endif // BASE_FILE_PATH_H_ |
OLD | NEW |