【问题标题】:URL Containing forward slash doesn't work with NSWorkSpace包含正斜杠的 URL 不适用于 NSWorkSpace
【发布时间】:2016-08-23 01:46:00
【问题描述】:

系统中存在带有正斜杠(/)的文件名。

例如:URL -> ~/Documents/FolderName/TestFilename/myFile.dmg。

最后一个路径组件是 -> "TestFilename/myFile.dmg"

文件名是 -> "TestFilename/myFile.dmg"

现在,当我在我的应用程序中使用下面的代码在查找器中显示以下代码时。它无法在finder中显示。

NSURL *fileURL = [NSURL URLWithString:@"/Documents/FolderName/TestFilename/myFile.dmg"];
[[NSWorkspace sharedWorkspace] activateFileViewerSelectingURLs:@[fileURL]];

现在如何解决这种情况并使其在查找器中显示此类文件。我确实尝试过使用“CFURLCreateStringByAddingPercentEscapes”,它似乎不起作用。 .

【问题讨论】:

    标签: objective-c cocoa nsurl nsfilemanager nsworkspace


    【解决方案1】:

    如果您可以在代码中分离文件名和文件位置,则可以实现这一点。

    下面是示例代码:

    NSString *location = @"Users/Desktop";
    NSString *fileName = @"TestFilename/myFile.dmg";
    if ([fileName rangeOfString:@"/"].location != NSNotFound)
    {
           fileName = [fileName stringByReplacingOccurrencesOfString:@"/" withString:@":"];
    }
    
    [[NSWorkspace sharedWorkspace] selectFile:[location stringByAppendingPathComponent:fileName] inFileViewerRootedAtPath:location];
    

    【讨论】:

    • Hemantha DS:对于包含多个正斜杠的文件名,它无法做到这一点
    猜你喜欢
    • 2018-07-21
    • 2015-10-26
    • 2015-03-13
    • 1970-01-01
    • 2015-08-11
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多