ファイルを扱うときに、C言語で書かないように
ついついstdio.h で書いてしまうので、一番よく使いそうなものをここに残しておいた。
fileHandleForWritingAtPath がファイルをTruncateしてくれないのがちょっとした、気づきだった。
// // main.m // working // // Created by takuya on 20150821. // Copyright (c) 2015年 takuya. All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSFileManager *fm = [NSFileManager defaultManager]; NSString *src = @"/Users/takuya/Desktop/player_4.1.0.00.swf"; NSString *dst = @"/Users/takuya/Desktop/out.txt"; NSFileHandle *src_fh; NSFileHandle *dst_fh; ///////////////////// //ファイルの読み込み ///////////////////// if(![fm fileExistsAtPath:src] ){ NSLog(@"ファイルがそんざいしない"); return 1; } ///////////////////// //データの読み込み ///////////////////// src_fh = [NSFileHandle fileHandleForReadingAtPath:src]; NSData *content = [ src_fh readDataToEndOfFile ]; ///////////////////// //ファイルの書き出し //////////////////// if(![fm fileExistsAtPath:dst] ){ //ファイルが存在スルか //空っぽファイルを作る BOOL result = [fm createFileAtPath:dst contents:nil attributes:nil]; if (!result) { NSLog(@"ファイルの作成に失敗"); return 1; } dst_fh = [NSFileHandle fileHandleForWritingAtPath:dst]; }else{ //ファイルを空にする dst_fh = [NSFileHandle fileHandleForWritingAtPath:dst]; [dst_fh truncateFileAtOffset:0]; } [dst_fh writeData:content]; } return 0; }