0

簡単なファイル共有の目的でiphoneをペンドライブとして機能させるアプリケーションを作成しています。

最初の段階では、ディレクトリにいくつかのファイル(png、pdf、jpg、zip)があり、それらを可変配列の形式でテーブルビューに表示します。以下に示すように、tableViewに表示されます。

.DS_Store
.localized
gazelle.pdf
Hamburger_sandwich.jpg
IITD TAJ Picture 028_jpg.jpg
iya_logo_final_b&w.jpg
manifesto09-eng.pdf
RSSReader.sql
SimpleURLConnections.zip
SQLTutorial

ファイルの名前を表示したいだけで、拡張子を表示したくありません。NSFileManagerでファイルの拡張子を抽出できることを知っています。しかしどうしたら良いかわからない。テーブルビューをこのようにするのを手伝ってください

.DS_Store
.localized
gazelle
Hamburger_sandwich
IITD TAJ Picture 028_jpg
iya_logo_final_b&w
manifesto09-eng
RSSReader
SimpleURLConnections
SQLTutorial

第2段階では、次のようなファイルの詳細ビューを表示するdetailedViewControllerがあります。

  1. ファイルサイズ
  2. ファイルタイプ
  3. 画像の場合は、imageViewで開く必要があります
  4. 曲の場合は再生する必要があります

したがって、各ファイルのfilePath、fileType、fileSize..などのプロパティを取得する必要があります。可能であればチュートリアルを教えてください。私も、mutableArrayをNSStringに変換し、stringByDeletingPathExtensionのようなメソッドを呼び出す方法がわかりません。私を助けてください。必要に応じてソースコードを送信することもできます。可能であれば、いくつかのサンプルコードとチュートリアルを案内してください。

4

2 に答える 2

0

これは機能するはずです:)これにより、NSString * parentDirectory内のディレクトリ内のすべてのファイルが取得され、そのサイズが取得されます。

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error = nil;
NSArray *filePaths = [fm contentsOfDirectoryAtPath:parentDirectory error:&error];
if (error) {
    NSLog(@"%@", [error localizedDescription]);
    error = nil;
}   
for (NSString *filePath in filePaths) {
    //filename without extension
    NSString *fileWithoutExtension = [[filePath lastPathComponent] stringByDeletingPathExtension];

    //file size
    unsigned long long s = [[fm attributesOfItemAtPath:[parentDirectory stringByAppendingPathComponent:filePath] 
                                  error:NULL] fileSize];

    UIImage *image = [UIImage imageNamed:[parentDirectory stringByAppendingPathComponent:filePath];];
    //if image...
    if(image){
        //show it here
    }
    else{
        //otherwise it should be music then, play it using AVFoundation or AudioToolBox
    }

}
于 2010-11-09T15:04:56.733 に答える
0

NSURL オブジェクトにファイル名があることを願っています。そうであれば、次のコードを使用してファイル名だけを取得し、文字列からファイル拡張子を削除できます。

NSArray *fileName = [[fileURL lastPathComponent] componentsSeparatedByString:@"."];
NSLog(@"%@",[fileName objectAtIndex:0]);
于 2010-11-09T14:28:30.997 に答える