gpt4 book ai didi

objective-c - Cocoa 目录内容

转载 作者:行者123 更新时间:2023-12-03 17:34:37 26 4
gpt4 key购买 nike

我有一个包含一系列文本文件的组/文件夹。我需要为每个人找到一条路径,以便我可以阅读内容,但我似乎无法让任何东西发挥作用。

我已经搞砸了 [NSBundle pathsForResourcesOfType:@"txt"inDirectory:@"directoryName"] ,它只给了我空值或一个读取“Contents”的字符串, [[NSFileManager defaultManager] enumeratorAtPath:@"directoryName"] 我不知道创建后该怎么办,并且 [[NSFileManager defaultManager] contentOfDirectoryAtPath:@"directoryName"error:nil].

我不知道自己做错了什么,此时我只是捕获救命稻草。我在这里浏览了 20 或 30 页,但没有一个真正有帮助。

我应该注意,这是一个 Cocoa 应用程序,而不是 iOS。

最佳答案

如果您想读取任意目录中的文件,路径枚举器可以很好地工作。有点老式,但这也有其魅力。

NSString *docPath = @"/tmp";
NSDirectoryEnumerator *dirEnum = [[NSFileManager defaultManager] enumeratorAtPath:docPath];

NSString *filename;
while ((filename = [dirEnum nextObject])) {

//Do something with the file name
}

如果您想从主目录中已知且已定义的目录中读取内容,则可以使用 NSSearchPathForDirectoriesInDomains:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docPath = [paths objectAtIndex: 0];

这将为您提供文档目录,当与上面的代码片段一起使用时,会列出该文件夹和子文件夹中的所有文件。

请注意,我们实际上不应该再使用漂亮的旧 Unix 路径,而是引用 URL。

在这种情况下,您会得到如下内容:

NSArray *URLs = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];

NSURL *docURL = URLs[0];

NSDirectoryEnumerator *URLEnum = [[NSFileManager defaultManager] enumeratorAtURL: docURL includingPropertiesForKeys: nil options: 0 errorHandler: nil];

NSString *filename;
while ((filename = [URLEnum nextObject])) {

// ...
}

请注意,enumeratorAtURL:includePropertiesForKeys:options:errorHandler: 具有各种有用的参数,您可以在 docs 中阅读这些参数。 .

关于objective-c - Cocoa 目录内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157997/

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