【问题标题】:How to NOT resolve symbolic links in NSOpenPanel?如何不解析 NSOpenPanel 中的符号链接?
【发布时间】:2015-05-23 01:46:49
【问题描述】:

每当我选择包含符号链接的路径时,NSOpenPanel 都会返回解析的路径。例如:

ln -s /Users/myuser/some/path/here /Users/myuser/mylink

现在我选择文件/Users/myuser/mylink/file.txt,但[[panel URLs] objectAtIndex:0]/Users/myuser/some/path/here/file.txt

如何让 NSOpenPanel 返回我选择的内容(而不是解析符号链接)?

【问题讨论】:

    标签: objective-c nsopenpanel


    【解决方案1】:

    resolvesAliases 设置为NO

    NSOpenPanel *oPanel = [NSOpenPanel openPanel];
    oPanel.resolvesAliases = NO;
    
    if ([oPanel runModal] == NSOKButton) {
        NSLog([[[oPanel URLs] objectAtIndex:0] absoluteString]);
    }
    

    【讨论】:

    • 这不起作用。 resolvesAliases 和 setResolvesAliases:NO 都不起作用,因为问题出在 符号链接,而不是别名。
    • 我认为您没有阅读我的用例。我没有创建指向叶子(file.txt)的符号链接,而是路径中的符号链接。在我的示例中,我创建了一个指向目录的符号链接:ln -s /Users/myuser/some/path/here /Users/myuser/mylink,然后我在该结构中选择了一个文件:/Users/myuser/mylink/file.txt
    猜你喜欢
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多