2016-05-30 8 views
0

私は次のコードを使用するサードパーティのプロジェクトを持っていますが、このコードはすべてではありませんが、アプリケーションバンドルでそのファイルを見つける方法は大きなファイル(記録)を書きますか?iOS:どのファイルが客観的なCでアプリケーションのサイズがどれくらいかかりますか?

NSError *audioSessionError = nil; 
    AVAudioSession *audioSession= [AVAudioSession sharedInstance]; 
    [audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:&audioSessionError]; 
    [audioSession setMode:AVAudioSessionModeDefault error:&audioSessionError]; 
    [audioSession setPreferredSampleRate:16000.0f error:&audioSessionError]; 
    [audioSession setPreferredInputNumberOfChannels:1 error:&audioSessionError]; 
    [audioSession setActive:TRUE error:&audioSessionError]; 
    _sampleRate= [audioSession sampleRate]; 

    // make a capture session that uses the audio session 
    _captureSession = [[AVCaptureSession alloc]init]; 
    _captureSession.sessionPreset = AVCaptureSessionPreset640x480; 
    _captureSession.automaticallyConfiguresApplicationAudioSession= NO; 




_startTimeMS = [[NSDate date] timeIntervalSince1970] * 1000; 

    dispatch_queue_t videoQueue = dispatch_queue_create("smmaProcessingQueueVideo", NULL); 
    [_videoOutput setSampleBufferDelegate:self queue:videoQueue]; 

    dispatch_queue_t audioQueue = dispatch_queue_create("smmaProcessingQueueAudio", NULL); 
    [_audioOutput setSampleBufferDelegate:self queue:audioQueue]; 

ビデオのコードも同様です。このコードでは、アプリケーションに大きすぎるファイル(最大2 GB)を書き込みます。オーディオ+ビデオ、

私は&はそのfile.iがそれを行う方法を
NSString *appFolderPath = [[NSBundle mainBundle] resourcePath]; 
NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSLog(@"App Directory is: %@", appFolderPath); 
NSLog(@"Directory Contents:\n%@", [fileManager directoryContentsAtPath: appFolderPath]); 

を試してみまし削除見つけたいですか?どんな助けでも大歓迎です。あなたがすることによって temp directoryをクリアすることができ

+0

@ EricD.Alright。あなたは答えをお試しいただけますか? –

+2

多くのメモリを消費するコードには何もありません!! – Lion

+0

コンパイル後にコードファイルがあまりにも多くのメモリを取ることはできません –

答えて

2

NSArray* tmpDirectory = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:NSTemporaryDirectory() error:NULL]; 
for (NSString *file in tmpDirectory) { 


    BOOL suc = [[NSFileManager defaultManager] removeItemAtPath:[NSString stringWithFormat:@"%@%@", NSTemporaryDirectory(), file] error:NULL]; 

    if (suc) { 

     NSLog(@"done"); 
    } 
    NSLog(@"file : %@%@",NSTemporaryDirectory(), file); 
} 

あなたはcachedirectory

、などの
  dirPaths = NSSearchPathForDirectoriesInDomains(
                NSCachesDirectory, NSUserDomainMask, YES); 
    docsDir = [dirPaths objectAtIndex:0]; 


    NSFileManager *manager1 = [NSFileManager defaultManager]; 

    NSArray *filesArDirectory1 = [manager contentsOfDirectoryAtPath:docsDir error:nil]; 

    NSError *err1; 

    for (NSString *file2 in filesArDirectory1) { 

     BOOL success = [manager1 removeItemAtPath:[NSString stringWithFormat:@"%@%@", docsDir,file2] error:&err1]; 

     if (!success || err1) { 
      NSLog(@"error description : %@",[err1 localizedDescription]); 
      NSLog(@"failed2"); 

     } 
     else{ 
      NSLog(@"Success2"); 
     } 
     NSLog(@"files : %@",file2); 

    } 

をクリアすることができますが、それはデータを格納する場合は、このディレクトリの両方をクリアしてみてください。ドキュメントディレクトリに大きなデータが格納されていることを確認し、それを管理する必要があります。

希望します。

+0

それはそのディレクトリで動作しますが、削除したいデータが.appディレクトリにあるようです。何か案が? –

+0

.appディレクトリは私が思うバンドルを意味し、あなたはその上に書き込み許可を持っていません。 [Appleのファイルシステムのドキュメント](https://developer.apple.com/library/ios/documentation/FileManagement/Conceptual/FileSystemOverview/FileSystemOverview.html)を確認してください。 – Lion

+0

ファイルをドラッグアンドドロップしてバンドルし、手動で削除することができます。ゴミ箱に移動。プログラム的に読むことはできますが、書き込むことはできません – Lion

関連する問題