سؤال

أنا أقوم بإنشاء تطبيق يجعل iPhone يعمل بمثابة pendrive لغرض مشاركة الملفات السهل.

في المرحلة الأولى ، لدي بعض الملفات (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

في المرحلة الثانية ، لديّ مفتاح تفصيلي يحصل على عرض مفصل للملف مثل

  1. حجم الملف
  2. نوع الملف
  3. إذا كانت صورة ، فيجب أن تفتح في ImageView
  4. إذا كانت أغنية ، فيجب أن تشغلها

لذلك أحتاج إلى إعادة محاكمة الخصائص مثل FilePath و FileType و Filetize .. من كل ملفات. يرجى إرشادي مع البرنامج التعليمي إن أمكن. أنا أيضًا ليس لدي أي فكرة عن كيفية تحويل mutablearray إلى NSString واستدعاء أساليب مثل StringByDeletingPathextension. الرجاء مساعدتي. يمكنني حتى إرسال رمز المصدر الخاص بي إذا لزم الأمر. إذا كان ذلك ممكنًا ، ارشدني مع بعض الرموز والمثال التعليمي.

هل كانت مفيدة؟

المحلول

يجب أن يعمل هذا :) سيحصل هذا على جميع الملفات في دليل في 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
    }

}

نصائح أخرى

آمل أن يكون لديك اسم الملف في كائن NSURL ، إذا كان الأمر كذلك ، فيمكنك استخدام الكود التالي للحصول على اسم الملف فقط ويمكنك إزالة ملحق الملف من السلسلة.

NSArray *fileName = [[fileURL lastPathComponent] componentsSeparatedByString:@"."];
NSLog(@"%@",[fileName objectAtIndex:0]);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top