重命名 NSLibraryDirectory 中的所有文件和目录
Posted
技术标签:
【中文标题】重命名 NSLibraryDirectory 中的所有文件和目录【英文标题】:Renaming all files and directories in NSLibraryDirectory 【发布时间】:2014-03-17 11:55:59 【问题描述】:如何将NSLibraryDirectory\myFolder
中的所有文件和目录重命名为小写?
我发现我可以使用:
[[NSFileManager defaultManager] moveItemAtPath:oldPath toPath:[oldPath lowercaseString] error:&error];
重命名目录。
NSArray *directoryContent = [fileManager contentsOfDirectoryAtPath:path error:nil];
获取包含目录内容的数组,但如何检查directoryContent[0]
是目录还是文件。
【问题讨论】:
【参考方案1】:您可以使用它来检查 NSUrl 是目录还是文件:
for (NSURL *item in directoryContent)
NSString *path = [item path];
BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir])
if (isDir)
NSLog(@"%@ is a directory", path);
else
NSLog(@"%@ is a file", path);
else
NSLog(@"%@ does not exist", path);
更新:
要重命名目录的所有内容,您可以使用:
NSArray *directoryContent = [fileManager contentsOfDirectoryAtPath:path error:nil];
BOOL isDir;
for (NSURL *item in directoryContent)
if ([[NSFileManager defaultManager] fileExistsAtPath:path isDirectory:&isDir])
if (isDir)
// create a new directory with lowercase name,
// move contents of old directory to the new one
// then delete the old directory
else
[[NSFileManager defaultManager] moveItemAtPath:path toPath:[path lowercaseString] error:&error];
【讨论】:
知道文件的 isDirectory 有好处,但我需要递归重命名所有文件和目录为小写 用代码更新了我的答案以重命名目录的内容【参考方案2】:
//Call [self purgeDirectory:__NSLibraryDirectoryPath];
+(void)purgeDirectory:(NSString *)directoryPath __deprecated_msg("For debug purposes only")
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *directoryContent = [fileManager contentsOfDirectoryAtPath:directoryPath error:&error];
for (NSString *itemPath in directoryContent)
BOOL isDir;
if ([[NSFileManager defaultManager] fileExistsAtPath:itemPath isDirectory:&isDir])
if (isDir)
[self purgeDirectory:itemPath];//subdirectory
else
[[NSFileManager defaultManager] removeItemAtPath:itemPath error:&error];
【讨论】:
以上是关于重命名 NSLibraryDirectory 中的所有文件和目录的主要内容,如果未能解决你的问题,请参考以下文章