从 UI 浏览目录并选择一个文件,获取文件的位置并在 Objective C 中的 Mac OS 应用程序的字符串变量中读取它的内容

Posted

技术标签:

【中文标题】从 UI 浏览目录并选择一个文件,获取文件的位置并在 Objective C 中的 Mac OS 应用程序的字符串变量中读取它的内容【英文标题】:Browse directory from UI and select a file, get the location of the file and read it`s content in a string variable for Mac OS app in Objective C 【发布时间】:2017-07-03 11:24:39 【问题描述】:

我想要的和C#中的folderBrowsingDialog和folderBrowsingDialog.selectedPath很相似。

我想构建一个 Mac OS 应用程序(目标 C),用户可以在其中从 UI 浏览目录并选择一个文件,获取文件的位置并在字符串变量中读取它的内容。我应该使用什么 UI 组件来浏览和读取文件的位置?

对于文件操作,我知道我需要使用 NSFileManager。但是如何进行第一部分呢?有没有关于 Mac OS 执行任务的 cocoaapplication UI 编程的好文档?

有一个question here 听起来与这个相似,但没有讨论 UI 部分。

【问题讨论】:

使用 NSOpenPanel 浏览并获取文件 URL。然后,例如,使用 NSData/NSString 加载内容。 【参考方案1】:

这是一个如何做到这一点的简单示例:

- (IBAction)buttonAction:(id)sender 
    NSOpenPanel *openPanel = [NSOpenPanel new];
    openPanel.canChooseFiles = YES;
    openPanel.canChooseDirectories = NO;
    openPanel.allowsMultipleSelection = YES;
    [openPanel beginWithCompletionHandler:^(NSInteger result) 
        if (result == NSFileHandlingPanelOKButton) 
            for (NSURL* fileURL in openPanel.URLs) 
                NSData *fileContent = [NSData dataWithContentsOfURL:fileURL];
                NSString* stringFileContent = [[NSString alloc] initWithData:fileContent encoding:NSUTF8StringEncoding];
                NSLog(@"File content: %@", stringFileContent);
            
        
    ];

【讨论】:

如果对您有用,您可能希望接受我的帖子作为答案。

以上是关于从 UI 浏览目录并选择一个文件,获取文件的位置并在 Objective C 中的 Mac OS 应用程序的字符串变量中读取它的内容的主要内容,如果未能解决你的问题,请参考以下文章

无法从 iPhone 文档目录位置中的已保存文件重新加载 UIImage

获取上传到 Flask 的文件路径 [重复]

Xamarin.Forms / Xamarin.Android的任何插件用于选择保存文件的目录?

从 sftp 位置迭代文件并使用 python 选择最新接收的文件

如何从 HTML 输入类型“文件”或任何其他方式获取文件夹目录?

Wix - 如何从安装目录安装后运行exe文件?