【问题标题】:Filepath from NSFileHandle on iOS (Swift or Objective-C)iOS 上 NSFileHandle 的文件路径(Swift 或 Objective-C)
【发布时间】:2015-08-12 21:45:29
【问题描述】:

我从函数调用中获得了NSFileHandle,并希望访问它所引用的文件。如何得到它?

我知道资源可能有多个文件路径或根本没有文件路径(内存中的文件)。但是,得到任何东西都会很好:)

【问题讨论】:

    标签: ios objective-c swift nsfilehandle


    【解决方案1】:

    你可以使用F_GETPATH:

    NSFileHandle* Handle = [NSFileHandle fileHandleForReadingAtPath:
                                @"/Applications/TextEdit.app/Contents/Info.plist"];
    char Path[MAXPATHLEN];
    if (Handle && fcntl([Handle fileDescriptor], F_GETPATH, Path) != -1)
        NSLog(@"%@", [NSString stringWithUTF8String:Path]);
    

    【讨论】:

      【解决方案2】:

      迅速:

      var buffer = [CChar](repeating: 0, count: Int(MAXPATHLEN))
      _  = fcntl(fileHandle.fileDescriptor, F_GETPATH, &buffer)
      let fileName = String(cString: buffer)
      

      【讨论】:

        【解决方案3】:

        如果您真的想要,可以找到此信息。这 fstat() 调用将为您提供文件的设备和 inode 编号,如果 它有一个。然后,您可以在该设备上搜索具有该文件的文件 索引节点。但这会很慢,而且它甚至可能不存在。

        source

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-09-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-28
          相关资源
          最近更新 更多