質問
私はそれに書き込みのためにファイルを開こうとしています。ファイルは存在しない可能性があります。
見つけた [NSFileHandle fileHandleForWritingAtPath:filePath]
ファイルが存在しない場合はnilを返します。グーグルで検索して、このようなコードスニペットを見つけました
[[NSData data] writeToFile:filePath atomically:YES]
これは、開く前にファイルの存在を保証します。
私の質問は次のとおりです。後者のコードラインはファイル作成の方法を推奨していますか? NSFileHandleに新しいファイルを作成するルーチンがないことは奇妙に思えます(既存のファイルのみを扱うことができます)。
解決
NSFileHandle
ファイルを作成する方法がないかもしれませんが NSFileManager
1つあります。そのクラスを見ましたか?
これは私にとって正常に機能しますが、毎回同じファイルを上書きすることに注意してください
NSString *cachesFolder = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *file = [cachesFolder stringByAppendingPathComponent:@"testfile"];
[[NSData data] writeToFile:file options:NSDataWritingAtomic error:nil];
他のヒント
Swift 4.xと5.0では、次のように行うことができます。
let yourData = Data() // the data to write
let cachesFolderPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true).first
if let path = cachesFolderPath {
let url = URL(fileURLWithPath: path).appendingPathComponent("xxx-cache")
do {
try yourData.write(to: url)
} catch {
print("writing failed: \(error.localizedDescription)")
}
}
所属していません StackOverflow