包含正斜杠的URL不适用于NSWorkSpace

时间:2016-04-28 10:40:43

标签: objective-c cocoa nsurl nsfilemanager nsworkspace

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

  

例如:网址 - > 〜/文档/文件夹名称/ TestFilename / myFile.dmg。

     

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

     

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

现在,当我在我的应用程序中使用以下代码时,使用以下代码显示查找器类型的内容。它无法在发现者身上发现。

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

现在如何在这种情况下解决此问题并使其在Finder中显示此类文件。我确实尝试过" CFURLCreateStringByAddingPercentEscapes",它似乎没有用。

1 个答案:

答案 0 :(得分: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];