Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 将文件树结构转换为NSDictionary_Objective C_Cocoa_Nsdictionary_Nsfilemanager_Property List - Fatal编程技术网

Objective c 将文件树结构转换为NSDictionary

Objective c 将文件树结构转换为NSDictionary,objective-c,cocoa,nsdictionary,nsfilemanager,property-list,Objective C,Cocoa,Nsdictionary,Nsfilemanager,Property List,我试图将完整的文件/文件夹结构(从给定文件夹开始)读入NSDictionary(使用NSArrays等),如下所示: 假设起始文件夹是:/Users/some user/some path 我们进入其中,列出所有文件夹/子文件夹/文件 A/ 文件a.txt 文件_b.txt 子文件夹/ 文件_c.txt B/ 等等 我想要的是将此文件结构(可能使用枚举数和NSFileManager)转换为NSDictionary,如: <key>folder</key> &l

我试图将完整的文件/文件夹结构(从给定文件夹开始)读入
NSDictionary
(使用
NSArray
s等),如下所示:

假设起始文件夹是:/Users/some user/some path

我们进入其中,列出所有文件夹/子文件夹/文件

A/

  • 文件a.txt
  • 文件_b.txt
  • 子文件夹/
    • 文件_c.txt
B/

  • 等等
我想要的是将此文件结构(可能使用枚举数和
NSFileManager
)转换为
NSDictionary
,如:

<key>folder</key>
<string>A</string>
<key>values</key>
<array>
       <dict>
             <key>file</key>
             <string>file_a.txt</string>
             <key>url</key>
             <string>/Users/some-user/some-path/A/file_a.txt</string>
       </dict>
       <dict>
             <key>file</key>
             <string>file_b.txt</string>
             <key>url</key>
             <string>/Users/some-user/some-path/A/file_b.txt</string>
       </dict>
       <dict>
             <key>folder</key>
             <string>subfolder</string>
             <key>values</key>
             <array>
                       ...
             </array>
       </dict>

</array>
文件夹
A.
价值观
文件
文件a.txt
网址
/用户/某些用户/某些路径/A/file_A.txt
文件
文件_b.txt
网址
/用户/某些用户/某些路径/A/file_b.txt
文件夹
子文件夹
价值观
...

有什么想法吗?

这就是工作的结果:

要检查路径是否为目录/包/捆绑包等,请执行以下操作:

- (BOOL)isDir:(NSString*)path
{
    BOOL isDir;
    if (([[NSFileManager defaultManager]
        fileExistsAtPath:path isDirectory:&isDir] && isDir) || 
        ([[NSWorkspace sharedWorkspace] isFilePackageAtPath:path]))
              return YES;
    else
        return NO;
}
实际函数(使用递归):


这就是工作的结果:

要检查路径是否为目录/包/捆绑包等,请执行以下操作:

- (BOOL)isDir:(NSString*)path
{
    BOOL isDir;
    if (([[NSFileManager defaultManager]
        fileExistsAtPath:path isDirectory:&isDir] && isDir) || 
        ([[NSWorkspace sharedWorkspace] isFilePackageAtPath:path]))
              return YES;
    else
        return NO;
}
实际函数(使用递归):


我看到您已将问题标记为
nsfilemanager
nsfilemanager
拥有完成此任务所需的所有方法,因此我不确定您还需要知道什么。事实上,我成功地做到了(稍后我将发布完整答案);但是,我在检查路径是否为文件夹时仍然遇到问题。。。你能帮我吗?我看到您已将问题标记为
nsfilemanager
nsfilemanager
拥有完成此任务所需的所有方法,因此我不确定您还需要知道什么。事实上,我成功地做到了(稍后我将发布完整答案);但是,我在检查路径是否为文件夹时仍然遇到问题。。。你能帮我吗?