Rumah  >  Soal Jawab  >  teks badan

ios - Bagaimana untuk menentukan sama ada fail dalam folder wujud, gunakan fileExistsAtPath: sentiasa TIDAK, fail itu wujud

1. Perkongsian sumber antara aplikasi, dokumen yang dikongsi disimpan dalam laluan Dokumen/Peti Masuk kotak pasir:
(lldb) po localPath
/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-05914/DoFF2444 / Inbox/%3F%3F%20Microsoft%20Word%20%3F%3F%20(2)-1.docx

Fail ini wujud, tetapi saya ingin mengira saiz dokumen menggunakan kaedah berikut

NSFileManager *fileManager = [NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:localPath]) {
        size = [[fileManager attributesOfItemAtPath:localPath error:nil] fileSize];
    }

Sentiasa mengembalikan TIDAK, fail tidak wujud Saya ingin bertanya jika terdapat masalah dengan laluan ini.
Jika laluan ditukar kepada /var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/Inbox, fail akan dikesan

Menunggu dalam talian~~~
Mungkin penerangan masalah tidak begitu jelas, anda boleh membaca ini http://blog.csdn.net/zhonggaorong/article/details/51832089 biarkan apl pihak ketiga mengklik "Gunakan" "Aplikasi lain dibuka", konsol yang muncul di bahagian bawah boleh mempunyai apl anda sendiri, dan kemudian ia akan melompat ke apl anda sendiri dan memanggil semula openUrl: kaedah itu

曾经蜡笔没有小新曾经蜡笔没有小新2706 hari yang lalu1532

membalas semua(3)saya akan balas

  • PHP中文网

    PHP中文网2017-05-24 11:33:54

    Rentetan selepas

    Application/ akan berubah setiap kali aplikasi dijalankan Anda tidak sepatutnya berkongsi laluan ini dan satu aplikasi tidak boleh mengakses direktori fail aplikasi lain.

    Menurut Apl iOS, biarkan aplikasi anda dipaparkan dalam senarai aplikasi lain iOS boleh menambahkan aplikasi anda pada "Aktiviti" dan membuka fail PDF dalam MyApp

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
    {
        if (url != nil) {
            NSFileManager *fileManager = [NSFileManager defaultManager];
            if ([fileManager fileExistsAtPath:url.path]) {
                unsigned long long size = [[fileManager attributesOfItemAtPath:url.path error:nil] fileSize];
                NSLog(@"size:%llu", size);
            }
            NSData *data = [NSData dataWithContentsOfURL:url];
            UIImage *image = [UIImage imageWithData:data];
            NSLog(@"%@", image);
        }
        
        return YES;
    }

    balas
    0
  • 某草草

    某草草2017-05-24 11:33:54

    1. Rentetan dalam laluan ditetapkan oleh sistem setiap kali aplikasi dipasang, selagi ia tidak dinyahpasang, laluan ini akan kekal tidak berubah
      2 Saya mengesyaki bahawa masalah itu disebabkan oleh nama laluan yang mengandungi aksara haram

    3 Direktori DOKUMEN bukan kotak pasir, tetapi digunakan untuk perkongsian, sandaran awan dan pelanggan iTunes

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-24 11:33:54

    Apl iOS semuanya dikotak pasir dan hanya boleh mengakses direktori di bawah apl anda sendiri. Rentetan 151DF2B1-576C-42B5-8F5D-051132FF2494 dalam apl anda akan berubah. Jadi ia perlu diperolehi melalui laluan relatif. Kod rujukan adalah seperti berikut:

    NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    // 这个documentDirectory就是你的/var/mobile/Containers/Data/Application/151DF2B1-576C-42B5-8F5D-051132FF2494/Documents/目录了
    NSString *documentDirectory = [pathArray firstObject];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *localPath = [documentDirectory stringByAppendingPathComponent:@"/Inbox/%3F%3F%20Microsoft%20Word%20%3F%3F%20(2)-1.docx"];
    if ([fileManager fileExistsAtPath:localPath]) {
        size = [[fileManager attributesOfItemAtPath:localPath error:nil] fileSize];
    }

    balas
    0
  • Batalbalas