Xcode OSX - 如何从usb读取目录的内容

时间:2015-10-20 20:10:21

标签: macos cocoa nsfilemanager

我需要制作一个可以从usb设备运行的mac应用程序。该应用程序是一个产品演示应用程序。我需要检查是否存在某个目录,以便定义我可以显示的产品类别。如果类别的目录未退出,则不会显示该类别。然后我必须检查每个类别目录中的所有jpg文件并存储它们,以便在用户选择时显示它们。

我的问题是我不知道如何从USB设备访问文件。我想我可以用来列出这样的内容:

NSFileManager *fileManager = [[NSFIleManager alloc] init];
NSString *usbRootPath = [fileManager currentDirectoryPath];
// Reading the root content
NSArray *fileList = [fileManager contentAtDirectoryAtPath:usbRootPath error:NULL];
// Printing the content
for(int counter=0; counter < [fileList count]; counter++)
      NSLog(@"%@", [fileList objectAtIndex:counter]);

usbRootPath(在我构建应用程序并在usb上复制之后)是“/”,内容列表包含系统驱动器中的所有目录/文件。

如何读取/验证位于USB驱动器上的目录的文件/目录/内容(我的应用程序正在以root身份复制)。

任何帮助将不胜感激! 提前谢谢!

2 个答案:

答案 0 :(得分:3)

NSString *usbRootPath = [fileManager currentDirectoryPath];

此代码检索进程的当前工作目录。这与您的应用程序所在的目录不同;在大多数情况下,它将是系统根目录(正如您已发现的那样)。 USB设备的路径应为/Volumes/devicename

要查找应用程序的路径,请使用:

NSString *applicationPath = [[NSBundle mainBundle] bundlePath];

然后取出父目录(如果适用)并从那里开始工作。

答案 1 :(得分:0)

可以在/ Volumes中找到所有已安装的卷。如果确保USB驱动器具有指定的名称,则可以在/ Volumes中查找“myUSBDriveName”,然后从那里继续。