Cocoa 如何从FSSpec获取NSString(Unix样式的路径)

Cocoa 如何从FSSpec获取NSString(Unix样式的路径),cocoa,unix,nsstring,Cocoa,Unix,Nsstring,如何从FSSpec获取NSString(Unix样式的路径) 问候,, Dhana.我认为下面的代码可以很好地工作 如果错误,请修改 char * UnixPathFromFSSpec(FSSpec *sfile) { char unixPath[2048]; unixPath[0] = '\0'; FSRef ref; if(FSpMakeFSRef(sfile, &ref) == noErr ) { FSRefMakePath

如何从FSSpec获取NSString(Unix样式的路径)

问候,,
Dhana.

我认为下面的代码可以很好地工作

如果错误,请修改

char * UnixPathFromFSSpec(FSSpec *sfile)
{
    char unixPath[2048];
    unixPath[0] = '\0';
    FSRef ref;

    if(FSpMakeFSRef(sfile, &ref) == noErr )
    {
        FSRefMakePath(&ref, unixPath, sizeof(unixPath));
    }

    return unixPath;
}
  • 为FSSpec创建一个FSRef
  • 使用或复制或获取URL文件系统路径的NSString

  • 别忘了发布CFURL。如果您复制了路径,路径也是如此。

    您应该将收到的一些答案标记为正确,以感谢帮助您使用
    path\u MAX
    而不是硬编码大量字节的人。如果其中一个函数失败,您可能还希望返回
    NULL
    ,而不是返回空字符串;此外,您已经将数组声明为局部变量,这意味着当函数退出时它将停止存在。您确实应该返回NSString而不是C字符串。