ios開發中如何有效清除檔案快取?,ios開發清除緩衝

來源:互聯網
上載者:User

ios開發中如何有效清除檔案快取?,ios開發清除緩衝

ios開發中如何有效清除檔案快取?在有一些應用中應該都會有一些緩衝是儲存在磁碟中的,然後應用也會去提供清除緩衝的按鈕,而且還會告訴你緩衝現在有多大。

那麼我們是如何去得到緩衝大小的呢,如何去清除? 首先我們要明確既然要得到緩衝的大小,那麼我們肯定需要去得到檔案的大小

但是這裡需要注意的是檔案夾本身是沒有檔案大小這個屬性的,可能會有疑問了,但是我右鍵可以查看,那個是通過計算檔案夾中

的檔案去計算出來的。在ios中我們想操縱檔案的話是需要去用到一個類的就是NSFileManager,我們如果直接去擷取檔案夾的大小是擷取

不到的,準備的說是NSFileSize對應的值不對,但是如果通過擷取檔案的大小是擷取的到的,如下所示

    //擷取檔案管理者    NSFileManager * mgr = [NSFileManager defaultManager];    //擷取緩衝路徑    NSString * string = @"檔案路徑";        NSDictionary * attrs = [mgr attributesOfItemAtPath:string error:NULL];        NSLog(@"%@",attrs);    //擷取檔案夾中的所有的直接內容 NSArray * contents = [mgr contentsOfDirectoryAtPath:string error:NULL];

我們可以給NSString增加一個分類去計算檔案夾的大小

 

 

-(NSInteger)fileSize{    NSFileManager * mgr = [NSFileManager defaultManager];    //判斷是否為檔案夾的一個標記    BOOL isDirectory = NO;    //isDirectory傳入進去,取出的如果是YES就是檔案夾   BOOL exists = [mgr fileExistsAtPath:self isDirectory:&isDirectory];    //判斷檔案或者檔案夾存不存在    if(exists==NO)    {        return 0;    }    //如果是一個檔案夾,我們就去遍曆caches中的所有的內容包括直接和間接的內容    if(isDirectory)    {        NSArray * subPaths = [mgr subpathsAtPath:self];        NSInteger totalByteSize =0;        for(NSString * subPath in subPaths)        {          //擷取全路徑            NSString * fullSubPath = [self stringByAppendingPathComponent:subPath];            //判斷是否為檔案            BOOL isDirectory = NO;            //表示是檔案            if(isDirectory==NO)            {                totalByteSize+=[[mgr attributesOfItemAtPath:fullSubPath error:NULL][NSFileSize]integerValue];            }        }        return totalByteSize;    }    //如果是單個檔案就輸出檔案大小   else    {     return [[mgr attributesOfItemAtPath:self error:NULL][NSFileSize]integerValue];    }}
如果我們要去刪除某個檔案或者某個檔案夾,我們直接用檔案管理者對象的一個方法就可以了
   NSString * str1 = @"檔案/檔案夾路徑";        [mgr removeItemAtPath:str1 error:NULL];

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.