我的Xcode项目中有一个XML文件,我试图首先将其保存到磁盘,其次我如何知道是否已成功保存它?这是正确的方法吗?使用模拟器,我导航到iOS
11中新的“文件”文件夹,但没有看到它,但不确定是否应该存在该文件夹?
guard let path = Bundle.main.url(forResource: "sample", withExtension: "xml") else {print("NO URL"); return}
let sample = try? Data(contentsOf: path)
print("sample XML = \(String(describing: sample?.debugDescription))")
//put xml file on the device
let filename = getDocumentsDirectory().appendingPathComponent("sample.xml")
do {
try sample?.write(to: filename)
} catch {
print("ERROR")
}
更新以包括文件是否存在我的检查:
//check if file exists
let checkPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as String
let url = URL(fileURLWithPath: checkPath)
let filePath = url.appendingPathComponent("sample.xml").path
let fileManager = FileManager.default
if fileManager.fileExists(atPath: filePath) {
print("FILE AVAILABLE")
} else {
print("FILE NOT AVAILABLE")
}
您可以使用UIDocumentInteractionController
并让用户在共享URL时选择他想保存文件的位置。用户只需要选择保存到文件,然后选择要保存要导出文件的目录即可。
您可以UIDocumentInteractionController
用来共享位于应用程序捆绑包内,文档目录中或可从应用程序访问的另一个文件夹中的任何文件类型。
class ViewController: UIViewController {
let documentInteractionController = UIDocumentInteractionController()
func share(url: URL) {
documentInteractionController.url = url
documentInteractionController.uti = url.typeIdentifier ?? "public.data, public.content"
documentInteractionController.name = url.localizedName ?? url.lastPathComponent
documentInteractionController.presentOptionsMenu(from: view.frame, in: view, animated: true)
}
@IBAction func shareAction(_ sender: UIButton) {
guard let url = URL(string: "https://www.ibm.com/support/knowledgecenter/SVU13_7.2.1/com.ibm.ismsaas.doc/reference/AssetsImportCompleteSample.csv?view=kc") else { return }
URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else { return }
let tmpURL = FileManager.default.temporaryDirectory
.appendingPathComponent(response?.suggestedFilename ?? "fileName.csv")
do {
try data.write(to: tmpURL)
DispatchQueue.main.async {
self.share(url: tmpURL)
}
} catch {
print(error)
}
}.resume()
}
}
extension URL {
var typeIdentifier: String? {
return (try? resourceValues(forKeys: [.typeIdentifierKey]))?.typeIdentifier
}
var localizedName: String? {
return (try? resourceValues(forKeys: [.localizedNameKey]))?.localizedName
}
}
我正在尝试获取一个应用程序的APK,并将其保存在存储目录的文件夹中。我已经得到了apk,但我无法将它保存到我想要的文件夹中。 下面是我如何生成apk文件: fileToSave是APK文件,但写它时没有这样的文件或目录。 java.io.FileNotFoundException:..../MyCreatedFolder/base.apk:open失败:ENOENT(没有这样的文件或目录) 所有所
我在公用文件夹中有一个javascript文件,我想将该文件导入src/components文件夹中的组件。 但我不能在我的组件中做这样的事情: 因为我得到了以下错误: 找不到模块:您试图导入项目src/目录之外的.../.../public/recorder。不支持src/之外的相对导入。您可以将其移动到src/中,也可以从项目的node_modules/中添加符号链接。 据我所知,它不允许在
问题内容: 我在一个免费的支持PHP的服务器上安装了此脚本: 它创建文件,但为空。 如何创建文件并向其中写入内容,例如“猫追老鼠”行? 问题答案: 您可以使用更高级别的函数,例如,与调用,相同,然后依次将数据写入文件。
问题内容: 如何使用JFileChooser将文本文件内容导入Java应用程序中的JTextArea? 问题答案: 应该类似于以下代码: 路卡
问题内容: 我看到在XCode 6中有一个内置的关卡编辑器。我找不到很多有关如何使用它或如何工作的文档,但是我能够弄清楚如何使用它制作SKSpriteNodes,然后使用childNodeWithName()将它们链接到.swift文件。当您创建一个新的SpriteKit项目时,它以GameScene.swift和GameScene.sks开始。我可以使用它们直观地创建一个关卡,然后可以在Game
问题内容: 我需要将文件写入以下路径: 但是路径可能不存在。所以我得到以下错误: message = ENOENT,打开/folder1/folder2/file.txt 如何将内容写入该路径? 问题答案: 将mkdirp与first 结合使用。 如果整个路径已经存在,则为noop。否则,它将为您创建所有丢失的目录。 该模块可满足您的需求:https : //npmjs.org/package/w