我有一个映像,我希望将其数据保存在此fileUri中,该文件由(“react-native-fs”)生成。库目录路径/保存的映像/{文件名}:
/Users/macbookpro/Library/Developer/CoreSimulator/Devices/9CBD2F1E-7330-418D-81BE-108C064DEA7E/data/Containers/Data/Application/C26348CC-3463-43EF-9B26-B7E31641E2EA/Library/saved_images/6B3A6A3A-8DE3-488B-AF43-A54775545B38.jpg
下面是我的实现:
do {
let url = URL(string: fileUri)
let fileExisted = FileManager().fileExists(atPath: url!.path)
if (fileExisted) {
try decryptedData.write(to: url!)
} else {
let handle = try FileHandle(forWritingTo: url!)
handle.write(data) // data is type Data
handle.closeFile()
}
} catch {
reject("FileError", "Failed to write file", error)
}
我还尝试了在fileUri前面加上和不加上file://
的let url = URL(fileURLWithPath: fileUri)
do {
let url = URL(fileURLWithPath: fileUri)
let fileExisted = FileManager().fileExists(atPath: url.path)
if (fileExisted) {
try decryptedData.write(to: url)
} else {
let handle = try FileHandle(forWritingTo: url)
handle.write(data)
handle.closeFile()
}
} catch {
reject("FileError", "Failed to write file " + error.localizedDescription, error)
}
它说:
1条答案
按热度按时间ars1skjm1#
您正在使用错误的API。
是代表完整(偶数编码)URL的字串,开头是
file://
或https://
之类的配置。另一方面,
fileUri
实际上是一个没有方案的路径,因此必须使用这将通过添加
file://
方案返回一个非可选的URL。应将
fileUri
重命名为filePath
。