我正在尝试删除iOS的内容文本文件。
或者,我可以删除该文件,然后在没有内容的情况下重新创建它。
对于此解决方案,我知道我可以使用[fileManager removeItemAtPath:filePath error:&error];
删除该文件。重新创建文件对我来说很难。
我正在使用以下代码找到文件:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"myFile.txt"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if([fileManager fileExistsAtPath:filePath])
{
[fileManager removeItemAtPath:filePath error:&error];
}
//code to recreate the same file, just with no content
答案 0 :(得分:4)
尝试
-[[NSFileManager defaultManager] createFileAtPath:path contents:[NSData data] attributes:nil]
答案 1 :(得分:2)
对于Swift
NSFileManager.defaultManager().createFileAtPath(path, contents: nil, attributes: nil)
答案 2 :(得分:0)
或者,您可以创建一个FileHandle
实例并调用truncateFile()
,如下所示:
var myFileHandle: FileHandle?
var fileName = "your_file_name.ext"
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let docPath = paths[0].appendingPathComponent(fileName)
if !FileManager.default.fileExists(atPath: docPath.path) {
FileManager.default.createFile(atPath: docPath.path, contents: Data(), attributes: nil)
}
do {
myFileHandle = try FileHandle(forWritingTo: docPath)
myFileHandle?.truncateFile(atOffset: 0)
} catch let error {
print("Could not initialize File Handle. Error: \(error.localizedDescription)")
}