ios - Bagaimana untuk menentukan sama ada fail dalam folder wujud, gunakan fileExistsAtPath: sentiasa TIDAK, fail itu wujud
曾经蜡笔没有小新
曾经蜡笔没有小新 2017-05-24 11:31:54
0
3
1563

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

曾经蜡笔没有小新
曾经蜡笔没有小新

membalas semua(3)
Ty80

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;
}
某草草
  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

淡淡烟草味

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];
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan