我想在我的Xcode Swift Iphone项目中放一个.txt文件。 首先,我只需将其从桌面拖放到项目中的Supporting Files文件夹即可。是不是像Android“资产”那样的文件夹,所以我可以将我的文件放在我想要的任何地方?
我的示例中的文件名为README.txt,它有一堆行和段落。
很简单,现在我想将README.txt文件的内容打印到视图中。
如果我的文件在项目/SupportFiles/README.txt中,我该怎么做读取功能以及我应该插入什么路径?
非常感谢!
答案 0 :(得分:34)
let path = NSBundle.mainBundle().pathForResource("README", ofType: "txt")
textView.text = String(contentsOfFile: path,
encoding: NSUTF8StringEncoding,
error: nil)
只需将文件放到项目浏览器的任何位置,并确保将其添加到正确的目标。
为了扩展答案,您还可以将它们放在一个文件夹中并使用: + pathForResource:ofType:inDirectory:
答案 1 :(得分:8)
我建议使用NSFileManager并将文件放在项目的任何位置:
if let path = NSBundle.mainBundle().pathForResource(name, ofType: "txt"){
let fm = NSFileManager()
let exists = fm.fileExistsAtPath(path)
if(exists){
let c = fm.contentsAtPath(path)
let cString = NSString(data: c!, encoding: NSUTF8StringEncoding)
ret = cString as! String
}
}
答案 2 :(得分:4)
在Swift 3中
guard let path = Bundle.main.path(forResource: "README", ofType: "txt") else {
return
}
textView.text = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
答案 3 :(得分:3)
Swift 4 (感谢@ Pierre-Yves Guillemet原创)
只要文件在您的项目中(并且具有.txt),这将起作用(在此示例中,我假设&#34; MyFile.txt&#34;是我项目中的文件):< / p>
static func LoadFileAsString() -> ()
{
if let path = Bundle.main.path(forResource: "MyFile", ofType: "txt")
{
let fm = FileManager()
let exists = fm.fileExists(atPath: path)
if(exists){
let content = fm.contents(atPath: path)
let contentAsString = String(data: content!, encoding: String.Encoding.utf8)
}
}
}
答案 4 :(得分:1)
如果您定义path's
类型并将!
行结束,则不会收到任何警告。
let path:String = NSBundle.mainBundle().pathForResource("README", ofType: "txt")!
textView.text = String(contentsOfFile: path,
encoding: NSUTF8StringEncoding,
error: nil)
答案 5 :(得分:0)
有一个Assets.xcassets
用于图像和文件。
这是从资产中读取信息的方法。
if let data = NSDataAsset(name: "AssetName")?.data {
textView.text = String(data: data, encoding: .utf8)
}