| // 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. |
| |
| #include "flutter/fml/paths.h" |
| |
| #include <Foundation/Foundation.h> |
| |
| #include "flutter/fml/file.h" |
| |
| namespace fml { |
| namespace paths { |
| |
| std::pair<bool, std::string> GetExecutableDirectoryPath() { |
| @autoreleasepool { |
| return {true, GetDirectoryName([NSBundle mainBundle].executablePath.UTF8String)}; |
| } |
| } |
| |
| fml::UniqueFD GetCachesDirectory() { |
| @autoreleasepool { |
| auto items = [[NSFileManager defaultManager] URLsForDirectory:NSCachesDirectory |
| inDomains:NSUserDomainMask]; |
| if (items.count == 0) { |
| return {}; |
| } |
| |
| return OpenDirectory(items[0].fileSystemRepresentation, false, FilePermission::kRead); |
| } |
| } |
| |
| } // namespace paths |
| } // namespace fml |