我在使用设备时使用代码删除了临时目录文件。
-(void) clearAllTempFiles {
NSString *path = NSTemporaryDirectory();
if ([path length] > 0)
{
NSError *error = nil;
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL deleted = [fileManager removeItemAtPath:path error:&error];
if (deleted != YES || error != nil)
{
}
else{
// Recreate the Documents directory
[fileManager createDirectoryAtPath:path withIntermediateDirectories:NO attributes:nil error:&error];
}
}
}
它运作不正常?这是从临时目录中删除文件的正确代码吗?
请帮助我?答案 0 :(得分:6)
您可以在代码中使用此命令获取mac上的tmp目录名称:
代码:
(void)cacheDirectory {
NSString *tempPath = NSTemporaryDirectory();
NSLog(@"Temp Value = %@", items);
}
从任何地方调用该方法。
这将返回tmp文件夹名称,然后在finder do(cmd-shift-G)中粘贴您从控制台窗口获得的响应。
以下内容将清除模拟器使用的TMP目录。
代码:
NSString *tempPath = NSTemporaryDirectory();
NSArray *dirContents = [[NSFileManager defaultManager] directoryContentsAtPath:tempPath];
NSArray *onlyJPGs = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.jpg'"]];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (onlyJPGs) {
for (int i = 0; i < [onlyJPGs count]; i++) {
NSLog(@"Directory Count: %i", [onlyJPGs count]);
NSString *contentsOnly = [NSString stringWithFormat:@"%@%@", tempPath, [onlyJPGs objectAtIndex:i]];
[fileManager removeItemAtPath:contentsOnly error:nil];
}
上面的代码只清除了目录中的JPG,所以如果要清除其他内容,请修改它。
答案 1 :(得分:4)
我找到了简单的
NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL];
for (NSString *file in tmpDirectory) {
[[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL];
}