iPhone:NSFilemanager fileExistsAtPath:isDirectory:无法正常工作?

2024-03-01

我正在为越狱 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/var 2009-07-28 23:23:35.945 Drowser[573:207] contentOfFolder:( 钥匙扣, “管理偏好”, 移动设备, 备份, 缓存, D b, EA, 空的, 文件夹, 库, 当地的, 锁, 日志, 日志, 移动的, 短信, 优先, 根, 跑步, 线轴, 藏, tmp, 虚拟机 )

但是之后:

2009-07-28 23:23:35.950 Drowser[573:207] apath:钥匙扣 2009-07-28 23:23:35.954 Drowser[573:207] apath:托管首选项 2009-07-28 23:23:35.959 Drowser[573:207] apath:MobileDevice 2009-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:db 2009-07-28 23:23:36.011 Drowser[573:207] apath:ea 2009-07-28 23:23:36.019 Drowser[573:207] apath:空 2009-07-28 23:23:36.028 Drowser[573:207] apath:文件夹 2009-07-28 23:23:36.037 Drowser[573:207] apath:lib 2009-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];
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone:NSFilemanager fileExistsAtPath:isDirectory:无法正常工作? 的相关文章

  • 从 UIImagePickerController 相机视图推送 viewController

    我正在开发一款消息应用程序 类似于 WhatsApp 用户可以互相发送文本和图像消息 当用户想要发送图像时 他可以从相机胶卷中选择一张图像 也可以用相机拍摄一张图像 这就是我介绍的方式UIImagePickerController对于这两种
  • 如何打开定位服务

    当有人第一次拒绝时 如何从实际应用程序重新打开定位服务 我可以选择关闭或打开它 您只能提示他们在屏幕上打开定位服务 如下所示 UIApplication sharedApplication openURL NSURL URLWithStri
  • 如何在 Core Data 中存储图像?

    只是猜测 我创建一个属性并将其类型设置为 二进制 但最终我该如何使用它呢 我猜幕后有一个 NSData 那么该属性实际上采用 NSData 吗 这个问题已经被问过很多次了 答案有点复杂 当涉及二进制数据时 您应该根据要使用的数据的预期大小来
  • iPhone 的电子书框架

    我有一本书想作为 iPhone 应用程序发布 有谁知道我可以使用免费 或便宜 的框架来实现这一目标 换句话说 我想为我的书创建一个独立的 XCODE 项目 其中包含 iPhone 用户将本书作为独立应用程序阅读所需的所有代码 我见过 O R
  • 如何在 iOS 9 上可靠地检测是否连接了外部键盘?

    在 iOS 9 之前 确定是否连接外部键盘的最可靠方法是监听UIKeyboardWillShowNotification并使文本字段成为第一响应者 如中所述这个问题 https stackoverflow com questions 289
  • 在 iOS 上将 NSString 转换为 NSDate 的正确方法?

    我一直在使用此方法将常规 NSString 对象转换为 NSDate 但尝试向 Apple 提交更新 但遭到拒绝 在 iOS 中还有什么其他方法可以做到这一点 NSString date str 2011 08 12T12 20 00Z N
  • 推送动画,没有阴影和停电

    我有一个简单的iOS NavigationController基于应用程序 二UICollectionViews 相继 如果元素打开 第一个合集 被点击时 第二集 将被打开 非常简单 重要的提示 Both UICollectionViews
  • 虚拟乐器 iPhone 应用程序中的 VoiceOver 辅助功能?

    我收到盲人用户的评论 称我的一些声音和音乐相关应用程序只能在关闭 VoiceOver 的情况下使用 在 iOS 设备上启用 VoiceOver 辅助功能后 是否可以启用音乐键盘或鼓垫触摸区域 以便在点击键盘键或虚拟鼓组 等 时可以立即播放音
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 如何将 ios7 通用应用程序升级到基于 Xcode 6 的通用故事板应用程序?

    我目前有一个基于 xcode 5 ios 7 的通用应用程序 因此有两个故事板 我正在考虑将其更新到 ios 8 有没有办法 最佳方法将两个故事板迁移到通用的单个故事板 我在 xcode 6 中看不到转换选项 None
  • 加载新控制器时,iPhone 横向模式切换到纵向模式

    我的应用程序在横向模式下正确启动并且运行良好 BOOL shouldAutorotateToInterfaceOrientation UIInterfaceOrientation interfaceOrientation if interf
  • PFQueryTableViewController 错误

    我正在遵循在线教程 使用 Parse 作为后端创建照片共享应用程序 我已经运行了两次教程 两次都从头开始创建应用程序 但在同一位置仍然出现相同的错误 我到处寻找解决方案 但仍然没有运气 我正在使用 PFQueryTableViewContr
  • 如何在 NSTextView 中使用 SPACE 而不是 TAB

    我只知道如何修改 NSTextView 中的制表符宽度 NSMutableParagraphStyle paragraphStyle self defaultParagraphStyle mutableCopy paragraphStyle
  • Mac OS X 上的 .dll 等效项 [重复]

    这个问题在这里已经有答案了 我来自一个Windows背景 我习惯于通过创建 dll 然后分发所有库和文档 因此 如果用户想要使用它 他会添加对库的引用并使用它 但是 在 Mac 中 我正在开发 SDK 并且我想要一种方法creating a
  • 如何检测用户是否第一次打开应用程序[重复]

    这个问题在这里已经有答案了 是否可以检测用户是否是第一次打开iOS应用程序 使用Objective C 我想在用户第一次打开应用程序时显示欢迎消息 但之后不再向他们显示 我正在寻找类似的东西 BOOL firstTime AppDelega
  • Flutter 应用程序在 iOS 平台的 firebase 电话身份验证中崩溃

    我在我的项目中实现了 Firebase Phone auth 在 Android 端 一切正常 但对于 iOS 端 当我尝试从我的端发送验证码时 应用程序崩溃并失去连接 我已在下面提交了我的代码 主程序 dart class MyApp e
  • 在 iOS 7 中 viewForHeaderInSection 部分是从 1 开始而不是从 0 开始

    我正在处理UITableView在我的项目中 这个项目是在 Xcode 4 5 中创建的 现在我正在使用 Xcode 5 所以我的问题是何时在 iOS 6 中运行我的项目 viewForHeaderInSection方法部分从 0 开始没问
  • 在 WKWebView 中禁用缩放?

    有谁知道在 WKWebView 中禁用双击和捏缩放的简单方法 我尝试过的任何方法都不起作用 Webview scrollView allowsMagnification false Error value of type WKWebView
  • 将 iPad xib 转换为 iPhone xib

    我看过很多关于将 iPhone xib 转换为 iPad xib 的帖子和教程 但我想反过来做 我能找到的唯一资源是 将 iPad 应用程序转换为 iPhone https stackoverflow com questions 68550
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方

随机推荐

  • C++ 查找单词中的 Anagrams

    我正在开发一个程序 该程序使用以下命令来检查特定单词是否是字谜词std count但是 我认为我的功能逻辑不正确 而且我似乎无法弄清楚 假设文件中有以下单词 Evil Vile Veil Live 我的代码如下 include
  • PowerMock:模拟私有静态最终变量,具体示例

    要通过此测试必须进行的绝对最小模拟是什么 code class PrivateStaticFinal private static final Integer variable 0 public static Integer method
  • 使用 ODBC 转义包含问号的访问表名称

    我有一个Access数据库要查询如下 id name Print 1 one Yes 2 two No 现在 我在 java 中的查询 使用带有 ODBC 连接器的PreparedStatement 如下所示 select from tab
  • 将 pandas GroupBy 中的列值聚合为字典

    这是我之前面试的时候也问过的问题 我们的输入数据具有以下列 语言 产品 ID 货架 ID 排名 例如 输入将具有以下格式 English 742005 4560 10 2 English 6000075389352 4560 49 Fren
  • 如何左移一位特定位?

    我只想在特定位置左移一位 保留其位置0 所以我不想用 lt lt 运算符 这是一个示例 假设变量具有值1100 1010我想移动第四位那么结果应该是1101 0010 到达那里的步骤 从原始数字中提取位值 将位值左移一位 将位移后的值合并回
  • 幂集生成函数的时间复杂度

    我试图计算出我编写的函数的时间复杂度 它生成一个电源组 http en wikipedia org wiki Power set对于给定的字符串 public static HashSet
  • 高效浮点比较 (Cortex-A8)

    有一个很大的 100 000 数组floating点变量 并且有一个阈值 也floating point 问题是我必须将数组中的每个变量与阈值进行比较 但 NEON 标志传输需要非常长的时间 根据探查器 约为 20 个周期 有没有有效的方法
  • 使用 nginx 通过 index.php 路由请求 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我正在将我的服务器从 Apache 迁移到 Nginx 这非常简单 htaccess rule RewriteEngine On RewriteCon
  • 在 ssl (ldaps) 的支持下连接活动目录

    我正在尝试在 ssl 的支持下连接活动目录 我尝试了以下网站中的步骤 http confluence atlassian com display CROWD Configuring an SSL Certificate for Micros
  • 防止进入后台状态 ios swift 时 websocket 连接断开

    经过大量研究后 这似乎是一个灰色地带 一旦用户进入后台状态 使用 Swift 库 Starscream 但我相信问题出在 iOS 和套接字上 我会尝试通过 websockets 偶尔发送网络请求 用户离开应用程序后不久 套接字连接会自动断开
  • 如何获取全日历的开始和结束时间?

    我怎样才能得到start and end全日历中可见天数的时间 我需要它在另一个 javascript 实例中使用 有没有类似的功能 calender getStartTime 如果您正在寻找visible开始和结束日期 那就是visSta
  • 有 Safari 阅读器的 API 吗?

    Safari Reader 是否有一个 API 可用于为 iOS 应用过滤网页中的文本 清除广告 不需要的文本部分等 如果没有 还有其他选择吗 只是在为我的应用程序做一些研究 这就是我发现的 无法发布所有链接 因为我是新人 但很容易通过谷歌
  • 是否有理由使用 std::conjunction/std::disjunction 而不是“&&”/“||”上的折叠表达式?

    是否存在您无法正确处理的特定情况std conjunction std disjunction并且不使用更 基本 即语言功能而不是库功能 的折叠表达式 Example func is enabled if all Ts have the s
  • ngx-datatables 在排序时给出“rxjs_1.fromEvent 不是函数”错误

    我只是按照演示来展示一个简单的数据表 这是我的代码 columns name ID prop id name Street Address prop address street name Suburb prop address subur
  • Java流过滤器值之和

    我有一堂课叫MonitoredData其中描述了一项活动及其开始时间和结束时间 属性是activityLabel startTime endTime 我必须使用流对这些活动进行分组和过滤 这些活动的总持续时间超过 10 小时 我设法计算持续
  • 如何访问 Apple 照片应用程序中使用的人物相册

    苹果的照片应用程序具有面部识别功能 我想知道是否存在 API 来访问已由应用程序分类的照片的相关数据 Apple 发布了一个用于访问 Apple Photos 的 SDK 名为照片套件 https developer apple com d
  • Django REST Framework 中的命名 JSON 数组

    实际上我已经定义了模型序列化器 class MyObjectSerializer serializers ModelSerializer class Meta model MyObject fields id name 它为我准备 JSON
  • CasperJS“无法加载脚本”

    我在为我一直使用的 casperJS 编写新脚本时遇到了最奇怪的问题 当我尝试使用 casperjs myScript js 启动脚本时 我得到以下信息 Unable to load script var www scrapers mySc
  • 操作 TCP 标头中 ISN 编号的最有效方法 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我目前正在尝试编写一个程序 该程序将
  • iPhone:NSFilemanager fileExistsAtPath:isDirectory:无法正常工作?

    我正在为越狱 iPhone 开发一款应用程序 我试图仅获取文件夹的目录 所以我正在这样做 NSArray contentOfFolder NSFileManager defaultManager directoryContentsAtPat