| // Copyright 2013 The Flutter Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef FLUTTER_FML_PATHS_H_ |
| #define FLUTTER_FML_PATHS_H_ |
| |
| #include <string> |
| #include <utility> |
| |
| #include "flutter/fml/unique_fd.h" |
| |
| namespace fml { |
| namespace paths { |
| |
| std::pair<bool, std::string> GetExecutablePath(); |
| std::pair<bool, std::string> GetExecutableDirectoryPath(); |
| |
| // Get the directory to the application's caches directory. |
| fml::UniqueFD GetCachesDirectory(); |
| |
| std::string JoinPaths(std::initializer_list<std::string> components); |
| |
| // Returns the absolute path of a possibly relative path. |
| // It doesn't consult the filesystem or simplify the path. |
| std::string AbsolutePath(const std::string& path); |
| |
| // Returns the directory name component of the given path. |
| std::string GetDirectoryName(const std::string& path); |
| |
| // Decodes a URI encoded string. |
| std::string SanitizeURIEscapedCharacters(const std::string& str); |
| |
| // Converts a file URI to a path. |
| std::string FromURI(const std::string& uri); |
| |
| } // namespace paths |
| } // namespace fml |
| |
| #endif // FLUTTER_FML_PATHS_H_ |