objective-c – 获取文件路径文件打开对话框可可?

objective-c – 获取文件路径文件打开对话框可可?,第1张

概述我的应用程序中有一个文件打开对话框来选择文件,但是当用户单击框中的“选择”按钮时,它显然不会做任何事情.如何从所选文件中提取文件路径?我需要文件路径,所以我可以获取要加密的文件的内容.最初,我将我将使用的文件硬编码到我的应用程序中,但这仅用于测试目的.这是我用于文件打开对话框的内容: int i;NSOpenPanel* openDlg = [NSOpenPanel openPanel];[o 我的应用程序中有一个文件打开对话框来选择文件,但是当用户单击框中的“选择”按钮时,它显然不会做任何事情.如何从所选文件中提取文件路径?我需要文件路径,所以我可以获取要加密的文件的内容.最初,我将我将使用的文件硬编码到我的应用程序中,但这仅用于测试目的.这是我用于文件打开对话框的内容:

int i;NSOpenPanel* openDlg = [NSOpenPanel openPanel];[openDlg setCanChoosefiles:YES];[openDlg setCanChooseDirectorIEs:YES];[openDlg setPrompt:@"Select"];Nsstring *filename = [pathAsNsstring lastPathComponent]; [filename stringByDeletingPathExtension];if ([openDlg runModalForDirectory:nil file:nil] == NSOKbutton ){    NSArray* files = [openDlg filenames];    for( i = 0; i < [files count]; i++ )    {        [files objectAtIndex:i];    }}

非常感谢帮忙.

解决方法 您的代码已经在处理用户选择的文件,您只是没有对它们执行任何 *** 作.

从-filenames方法返回的数组包含用户选择为Nsstring对象的文件的路径.如果他们只选择了一个文件,则数组中只有一个对象.如果他们没有选择任何文件,则该数组将为空.

if ([openDlg runModalForDirectory:nil file:nil] == NSOKbutton ){    NSArray* files = [openDlg filenames];    for(Nsstring* filePath in [openDlg filenames])    {        NSLog(@"%@",filePath);        //do something with the file at filePath    }}

如果您只希望用户能够选择单个文件,则在配置面板时调用[openPanel setAllowsMultipleSelection:NO].这样,文件名数组中最多只有一个条目.

正如@VenoMKO指出的那样,-filenames方法现已弃用,您应该使用-URLs方法.这将返回文件NSURL对象的数组,而不是Nsstrings数组.由于SNow Leopard中的几乎所有文件处理API都经过修改以获取URL,因此这将是首选选项.

总结

以上是内存溢出为你收集整理的objective-c – 获取文件路径文件打开对话框可可?全部内容,希望文章能够帮你解决objective-c – 获取文件路径文件打开对话框可可?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1003637.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存