gpt4 book ai didi

iPhone:NSFilemanager fileExistsAtPath:isDirectory:工作不正常?

转载 作者:太空狗 更新时间:2023-10-30 03:34:43 26 4
gpt4 key购买 nike

我正在为越狱的 iPhone 开发一个应用程序。我试图只获取文件夹的目录。所以我这样做:

NSArray *contentOfFolder = [[NSFileManager defaultManager] directoryContentsAtPath:path];
NSLog(@"contentOfFolder: %@", contentOfFolder);
directoriesOfFolder = [[NSMutableArray alloc] initWithCapacity:100];
for (NSString *aPath in contentOfFolder) {
NSLog(@"apath: %@", aPath);

BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:aPath isDirectory:&isDir] &&isDir)
{
[directoriesOfFolder addObject:aPath];
NSLog(@"directoriesOfFolder %@", directoriesOfFolder);
}
}
NSLog(@"dirctories %@", directoriesOfFolder);

但看看我得到了什么。当我得到文件夹的内容时,一切看起来都很好:

2009-07-28 23:23:35.930 Drowser[573:207] 新路径/private/var2009-07-28 23:23:35.945 Drowser[573:207] contentOfFolder: ( key 扣, “管理偏好”, 移动设备, 备份, 缓存, D b, 一个, 空的, 文件夹, 图书馆, 本地的, 锁, 日志, 日志, 移动的, 讯息, 喜好, 根, 运行, 线轴, 藏, 临时工, 虚拟机)

然后:

2009-07-28 23:23:35.950 Drowser[573:207] apath: Keychains2009-07-28 23:23:35.954 Drowser[573:207] apath:托管首选项2009-07-28 23:23:35.959 Drowser[573:207] apath: MobileDevice2009-07-28 23:23:35.984 Drowser[573:207] apath: 备份2009-07-28 23:23:35.993 Drowser[573:207] apath: 缓存2009-07-28 23:23:36.002 Drowser[573:207] apath: db2009-07-28 23:23:36.011 Drowser[573:207] 冷漠:ea2009-07-28 23:23:36.019 Drowser[573:207] 路径:空2009-07-28 23:23:36.028 Drowser[573:207] apath: 文件夹2009-07-28 23:23:36.037 Drowser[573:207] apath: lib2009-07-28 23:23:36.046 Drowser[573:207] directoriesOfFolder ( 库)

只有“lib”!被识别为文件夹。这个怎么可能?其他的也是文件夹。我通过 SSH 确认了它。

有人知道吗?我做错了什么吗?

最佳答案

这是一个很容易犯的错误,但也很容易改正。枚举目录的内容只会为您提供项目的名称,而不是项目的完整路径。您必须自己构建完整路径。所以你有:

for (NSString *aPath in contentOfFolder) {
NSLog(@"apath: %@", aPath);

BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:aPath isDirectory:&isDir] &&isDir) {
[directoriesOfFolder addObject:aPath];
NSLog(@"directoriesOfFolder %@", directoriesOfFolder);
}
}

你实际上应该有这个:

for (NSString *aPath in contentOfFolder) {
NSString * fullPath = [path stringByAppendingPathComponent:aPath];

BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] &&isDir) {
[directoriesOfFolder addObject: fullPath];
}
}

关于iPhone:NSFilemanager fileExistsAtPath:isDirectory:工作不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1196885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com