如何获取应用组的Application Scripts目录?是否有对应FileManager API?
关于应用组Application Scripts目录的API问题
目前并没有直接获取应用组对应Application Scripts目录的FileManager系统API,你需要手动构造这个路径。
正确的手动构造方式
沙盒应用中FileManager.default.homeDirectoryForCurrentUser返回的是应用容器内的Data目录,无法用来定位用户全局的Library目录,你可以通过以下方式获取正确路径:
- 先获取用户全局的Library目录:用
FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first,这个方法返回的是真实的~/Library路径。 - 拼接
Application Scripts/[你的应用组ID]得到目标目录。
示例代码:
guard let userLibraryDir = FileManager.default.urls(for: .libraryDirectory, in: .userDomainMask).first else { // 处理路径获取失败的情况 return } let appGroupScriptsDirectory = userLibraryDir .appendingPathComponent("Application Scripts") .appendingPathComponent("com.yourcompany.yourappgroup") // 如果需要确保目录存在,可执行创建操作 do { try FileManager.default.createDirectory(at: appGroupScriptsDirectory, withIntermediateDirectories: true, attributes: nil) } catch { print("创建应用组脚本目录失败:\(error.localizedDescription)") }
补充说明
应用组的Application Scripts目录属于用户全局Library下的共享目录,不在单个应用的沙盒容器内,所以无法通过针对应用自身的目录API获取,必须通过全局Library路径拼接得到。
内容的提问来源于stack exchange,提问作者Nickkk
相关产品推荐
相关产品推荐

