从 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
Xamarin.Forms / Xamarin.Android的任何插件用于选择保存文件的目录?
从 sftp 位置迭代文件并使用 python 选择最新接收的文件