Есть несколько проблем с вашими необработанными строковыми данными. Но самый простой способ сделать это в Какао:
NSString *theString = @"MyFolderName";
NSString* path = [NSHomeDirectory() stringByAppendingPathComponent:theString];
[[NSFileManager defaultManager] createDirectoryAtPath:path
attributes:nil];
Вы использовали FSRef, чтобы указать путь к каталогу, в котором он был создан. В моем примере вместо этого используется домашний каталог. Если вам действительно нужно использовать каталог в FSRef и не знать путь к нему, возможно, будет проще использовать функцию FSCreateDirectoryUnicode:
Редактировать: изменен код для использования правильной кодировки.
NSString *theString = @"MyFolderName";
const UniChar* name = (const UniChar*)[theString cStringUsingEncoding:NSUnicodeStringEncoding];
FSCreateDirectoryUnicode(&aFolderFSRef, [theString length], name, kFSCatInfoNone, NULL, &newFolderFSRef, NULL, NULL);
Единственное, что было нарушено в исходном коде, это то, что dataUsingEncoding
возвращает внешнее представление строки. Это означает, что данные в начале содержат метку порядка байтов в Юникоде, которую FSCreateDirectoryUnicode не хочет.