Merge/Append 两个文件
Merge/Append two files
我有两个文件,File1 和 File2。我想在 File1 的末尾附加 File2。
func writeToFile(content: String, fileName: String) {
let contentToAppend = content+"\n"
let filePath = NSHomeDirectory() + "/Documents/" + fileName
//Check if file exists
if let fileHandle = FileHandle(forWritingAtPath: filePath) {
//Append to file
fileHandle.seekToEndOfFile()
fileHandle.write(contentToAppend.data(using: String.Encoding.utf8)!)
}
else {
//Create new file
do {
try contentToAppend.write(toFile: filePath, atomically: true, encoding: String.Encoding.utf8)
} catch {
print("Error creating \(filePath)")
}
}
}
我正在使用这个函数在文件末尾添加字符串。最后我没有找到任何要附加文件的东西。如果我遗漏了什么,谁能帮我一下。
正如 rmaddy 所说,您使用了错误的代码来获取文档目录。为此,您应该使用类似这样的代码:
guard let docsURL = try? FileManager.default.url(for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true else { return }
然后你需要代码来读取你想要追加的文件并使用 write 来追加它:
let fileURL = docsURL.appendingPathComponent(fileName)
let urlToAppend = docsURL.appendingPathComponent(fileNameToAppend)
guard let dataToAppend = try ? Data.contentsOf(url: urlToAppend) else { return }
guard let fileHandle = FileHandle(forWritingTo: fileURL) else { return }
fileHandle.seekToEndOfFile()
fileHandle.write(dataToAppend)
(跳过错误处理、关闭文件等)
我有两个文件,File1 和 File2。我想在 File1 的末尾附加 File2。
func writeToFile(content: String, fileName: String) {
let contentToAppend = content+"\n"
let filePath = NSHomeDirectory() + "/Documents/" + fileName
//Check if file exists
if let fileHandle = FileHandle(forWritingAtPath: filePath) {
//Append to file
fileHandle.seekToEndOfFile()
fileHandle.write(contentToAppend.data(using: String.Encoding.utf8)!)
}
else {
//Create new file
do {
try contentToAppend.write(toFile: filePath, atomically: true, encoding: String.Encoding.utf8)
} catch {
print("Error creating \(filePath)")
}
}
}
我正在使用这个函数在文件末尾添加字符串。最后我没有找到任何要附加文件的东西。如果我遗漏了什么,谁能帮我一下。
正如 rmaddy 所说,您使用了错误的代码来获取文档目录。为此,您应该使用类似这样的代码:
guard let docsURL = try? FileManager.default.url(for: .documentDirectory,
in: .userDomainMask,
appropriateFor: nil,
create: true else { return }
然后你需要代码来读取你想要追加的文件并使用 write 来追加它:
let fileURL = docsURL.appendingPathComponent(fileName)
let urlToAppend = docsURL.appendingPathComponent(fileNameToAppend)
guard let dataToAppend = try ? Data.contentsOf(url: urlToAppend) else { return }
guard let fileHandle = FileHandle(forWritingTo: fileURL) else { return }
fileHandle.seekToEndOfFile()
fileHandle.write(dataToAppend)
(跳过错误处理、关闭文件等)