2012-02-16 9 views
0

に、最新の作成したファイル名を取得するフォルダを変更使用してオーディオファイルとテキストファイル私が持っているディレクトリ

私はフォルダにループなしまたは可変配列と順序を使用せずに、最後の作成したテキストファイルや音声ファイルのパスを取得する必要があり

が含まれていますデータ

任意のアイデア

+0

を作成しましたか? – Mundi

+0

パフォーマンスがこのフォルダにたくさんのファイルを持たせることができます – AMH

答えて

3

2つの解決策があります。

  1. はあなたがなし完全な情報を持っているのいずれかフォルダ内のファイルについて事前に確認しておいてください。その後、それらをループして修正日を確認する必要があります。
  2. またはは、最初からそのフォルダに入るすべてのものに対して制御を持っています。それで、最新のファイルのURLを保存する設定を保存することができます。ループのための

実装:

NSString *documentsDirectory = [[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject] path]; 
NSArray *docFileList = [[NSFileManager defaultManager] subpathsAtPath:documentsDirectory]; 
NSEnumerator *docEnumerator = [docFileList objectEnumerator]; 
NSString *docFilePath; 
NSDate *lastModifiedDate = [NSDate dateWithTimeIntervalSince1970:0]; 
NSString *lastModifiedFilePath = @""; 

while ((docFilePath = [docEnumerator nextObject])) { 
    NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:docFilePath]; 
    NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:fullPath error:nil]; 
    NSDate currentModifiedDate = [fileAttributes fileModificationDate]; 

    if (lastModifiedDate < fileModificationDate) { 
     fileModificationDate = lastModifiedDate; 
     lastModifiedFilePath = fullPath; 
    } 
} 

return lastModifiedFilePath; 
+0

サンプルコードをお願いします。私はコントロールできません。他の多くのフォルダがあるので、私はperefrenceを実行できません。 – AMH

+0

サンプルコードを与えることができれば嬉しいです – AMH

+0

あなたの便宜のためにいくつかのコード。 – Mundi

0

するためのもう1つのオプションあなたが自動生成されたの.plistファイルとその最後の値を管理するために必要とする時間は、最新のダウンロードをフェッチし、正当化するファイルをダウンロードしているときファイル名。

ここにその1つのチュートリアルを示します。 次のコードは、ダウンロード用のオーディオファイルを使用しているとの.plistを追加するには、動的にあなたがループにしたくないのはなぜ

NSString *[email protected]"Your sound "; 

    // check first locally exists or not 
    NSString *strPathToAudioCache=[NSString stringWithFormat:@"%@/%@", 
            [(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0], 
            AudioFolder]; 

    NSDictionary *dOfAudios=[NSDictionary dictionaryWithContentsOfFile:strPathToAudioCache]; 

    if([dOfAudios valueForKey:strAudioURL]) { 
     [APP_DEL initAndPlayMovie:[NSURL fileURLWithPath:[dOfAudios valueForKey:strAudioURL]] andViewController:self]; 
    } else { 
     NSURL *audioURL = [NSURL URLWithString:strAudioURL]; 
     NSString *strPathToDownload=[NSString stringWithFormat:@"%@/%@",[(NSArray*)NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0], 
            [strAudioURL lastPathComponent]]; 

     if(!self.rqstForAudio || [self.rqstForAudio isFinished]) { 
      self.rqstForAudio=[ASIHTTPRequest requestWithURL:audioURL]; 
      [self.rqstForAudio setDelegate:self]; 
      [self.rqstForAudio setAllowResumeForFileDownloads:YES]; 
      [self.rqstForAudio setCachePolicy:ASIUseDefaultCachePolicy]; 
      [self.rqstForAudio setCacheStoragePolicy:ASICachePermanentlyCacheStoragePolicy]; 
      [self.rqstForAudio setDidFailSelector:@selector(failedToLoad:)]; 
      [self.rqstForAudio setDidFinishSelector:@selector(finishedLoading:)]; 
      [self.rqstForAudio setDownloadCache:[ASIDownloadCache sharedCache]]; 
      [self.rqstForAudio setDownloadDestinationPath:strPathToDownload]; 
      [self.rqstForAudio startAsynchronous]; 
     } 

    } 
+0

私はファイル名がわからない、私はちょうどlateastはオーディオとテキストファイルを変更しました – AMH

+0

お名前と値を挿入して.plistファイルに挿入すると、.plistファイルに名前が入力され、それらにアクセスできるようになりました.plistデータは辞書とそのアクセス権を作成しますファイル –

+0

の最初のダウンロードデモの最初のアプリケーションを実行し、1つの.plistがあるアプリケーションのドキュメントディレクトリを表示し、それを開いて、それについてのアイデアを得ることができます –

関連する問題