使用freopen()时限制文件大小

时间:2013-07-15 06:03:23

标签: ios objective-c text-files

在我的项目中,我使用代码

NSlog数据重定向到文件
freopen([FilePath cStringUsingEncoding:NSUTF8StringEncoding],"a+",stderr);

我们遇到了一个问题,如果我们继续编写数据文件的大小可能会大大增加,我们想要限制数据。让我们说文件大小达到2MB后我想清除旧数据并写入新数据。

我们怎么做,我们如何在运行时检查文件大小。

1 个答案:

答案 0 :(得分:0)

为此,您可以使用NSFileManager

attributesOfItemAtPath:方法
NSError *err;
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:&err];
NSNumber *fileSize           = [fileAttributes objectForKey:NSFileSize];

if(//Check whether the size is above 2 MB)
{
   //Remove old content by either removing file or clearing it
   [[NSFileManager defaultManager] removeItemAtPath:filePath error:&err];
}
else
{
   //Add data
   freopen([filePath cStringUsingEncoding:NSUTF8StringEncoding],"a+",stderr);
}