2012-08-30 14 views
26

Ana Uygulama Paketinde bulunan isteğe bağlı bir dosya kümesine sahip olduğumu varsayalım. Açılışta olanlar için dosya URL'lerini almak ve bir yere depolamak istiyorum. Bu NSFileManager kullanarak mümkün mü? Bu konuda dokümantasyon açık değildir.Uygulama tanıtıcısında grup dosya başvuruları/yolları alma

Not: Sadece dosya URL'lerine ihtiyacım var, gerçek dosyalara erişmem gerekli değil.

+0

"Dosya referansı" nedir? Yol? URL? Ne? –

+0

Dosya referansı ile dosya URL'sini kastediyorum –

cevap

59

[Bu tümü orijinal olarak açıkça değildi, ne istediğinize daha spesifik olması sorunuzu güncellemeniz gerekmektedir]

NSString *path = [[NSBundle mainBundle] pathForResource:@"SomeFile" ofType:@"jpeg"]; 
NSURL *url = [NSURL fileURLWithPath:path]; 

yapabilirsiniz Örneğin, Belgeler dizininde bir özellik listesi dosyası bu URL'yi yazın:

NSString *docsDir = [NSSearchForDirectoriesInDomains(NSDocumentsDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSString *plistPath = [docsDir stringByAppendingPathComponent:@"Files.plist"]; 
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:[url absoluteString] forKey:@"SomeFile.jpeg"]; 
[dict writeToFile:plistPath atomically:YES]; 

dosyaların isimlerini bilmiyorsanız ve sadece paketi içindeki tüm dosyaları listelemek istiyorum

kullanmak yerine NSURL yapıcı bir yol geçirmeden yerine, doğrudan bir NSURL almak için 10.6 veya iOS 4 geçerli NSBundle ( documentation) üzerinde bir API var
+0

Dosyaların isimlerini bilmezsem, tüm dosyaları oraya almak isterim? –

+0

@AndrewLauerBarinov sonra NSFileManager'ın belgelerini okuyabilirsiniz. (Ama yine de düzenlemeye bakın ...) –

+0

Ek bilgi için teşekkürler! –

2

Evet, alacağı onların yolu:

NSString *path = [NSBundle mainBundle] pathForResource:@"file1" ofType:@"png"]; 
NSURL *fileURL = [NSURL fileURLWithPath:path] 

// save it as any other object or in a dictionary: 

[myMutableDictionary setObject:fileURL forKey:@"file1.png"]; 

DÜZENLEME: dosyaları almak her dizin yürümek sonra, paket kendisinin bulunduğu yolu olsun, NSFileManager kullanın dosyaların tam bir listesini almak yapma URL'ler ve bunları bir yere kaydetme. Bunu yapmak için bir dizine nasıl yürüyeceğine dair SO kodları vardır. Sen kullanarak ana paket içinde bir dosyanın URL'sini alabilirsiniz

+1

Dosya adlarını bilmiyorum, sadece tüm dosyaları oraya almak istiyorum? –

0

: Aynı zamanda almak varyantları vardır

- (NSURL *)URLForResource:(NSString *)name withExtension:(NSString *)ext; 

bir subdirectory ve localizationName, -pathForResource: eşdeğerleriyle aynıdır.

İlgili konular