【问题标题】:Foundation command line tool, file from argumentsFoundation 命令行工具,来自参数的文件
【发布时间】:2013-04-03 05:11:28
【问题描述】:

我正在使用基础框架在 Xcode 中创建一个命令行工具,但我对处理文件路径的基础知识感到困惑。第一个参数是文件 (myfile.txt) 或文件路径 (./myfile.txt)。我想将此参数转换为文件的绝对路径(或 URL)。我该怎么做?

【问题讨论】:

标签: cocoa command-line-arguments nsfilemanager foundation


【解决方案1】:

使用-[NSURL fileURLWithPath:]

int main(int argc, char *argv[]) {
  @autoreleasepool {
    if(argc < 2)
    {
      fprintf(stderr, "Usage: %s [file path]\n", argv[0]);
      exit(-1);
    }

    NSURL *f = [NSURL fileURLWithPath:[NSString stringWithUTF8String:argv[1]]];
    /* Do something with f */
  }

  return 0;
}

【讨论】:

  • 如果参数正好是“myfile.txt”,这会给我一个完整的文件 myfile.txt 句柄吗?
  • 如果“句柄”是指完整路径,是的。过程 CWD 被考虑在内。如果您想自己测试,请在创建 URL 后执行 NSLog(@"%@", [f path])。
  • 谢谢!这正是我所需要的。
猜你喜欢
  • 1970-01-01
  • 2016-10-04
  • 2014-01-18
  • 2015-04-20
  • 2021-03-26
  • 2017-07-28
  • 1970-01-01
  • 2011-04-21
  • 2014-02-02
相关资源
最近更新 更多