manager = [NSFileManager defaultManager];
if([manager fileExistsAtPath:newPath] == NO ||
[path caseInsensitiveCompare:newPath] == NSOrderedSame) {
rename([path fileSystemRepresentation], [newPath fileSystemRepresentation]);
}
renameシステムコールは第2引数に指定したファイルが既に存在する場合はそれを消してしまうので、あらかじめファイル名変更後のファイルが存在するかどうかを確認して、ファイルが存在しないか、元のファイル名と新しいファイル名が大文字小文字が違うだけの場合のみ名前を変更するようにします。
0 件のコメント:
コメントを投稿