Как мне создать FSRef из строки NSString, содержащей путь? - PullRequest
3 голосов
/ 10 июня 2009

У меня есть путь к файловой системе в строке NSString, но мне нужен FSRef для системного вызова, который я буду делать. Каков наилучший способ создания FSRef?

Ответы [ 3 ]

5 голосов
/ 10 июня 2009

Попробуйте FSPathMakeRef:

NSString *path = @"Some... path... here";
FSRef f;
OSStatus os_status = FSPathMakeRef((const UInt8 *)[path fileSystemRepresentation], &f, NULL);

if (os_status == noErr) {
    NSLog(@"Success");
}
2 голосов
/ 10 июня 2009

Вы можете использовать FSPathMakeRef(), чтобы сделать FSRef из строкового пути UTF-8 C, и вы можете использовать -UTF8String метод NSString получить строку UTF-8 C:

FSRef fsref;
Boolean isDirectory;
OSStatus result = FSPathMakeRef([myString UTF8String], &fsref, &isDirectory);
if(result < 0)
    // handle error
// If successful, fsref is valid, and isDirectory is true if the given path
// is a directory.  If you don't care about that, you can instead pass NULL
// for the third argument of FSPathMakeRef()
1 голос
/ 11 июня 2009

Вы можете использовать этот метод от Натана Дея в своей категории NSString + NDCarbonUtilities:

- (BOOL)getFSRef:(FSRef *)aFSRef
{
    return FSPathMakeRef( (const UInt8 *)[self fileSystemRepresentation], aFSRef, NULL ) == noErr;
}

См. NDAlias ​​по адресу http://homepage.mac.com/nathan_day/pages/source.xml для получения дополнительной информации (лицензия MIT).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...