2013-02-12 22 views
6

iOS uygulamamı güncellerken, Documents dizinindeki mevcut sqlite veritabanlarını silmek istiyorum. Şu anda, bir uygulama güncellemesinde, veritabanını paketten belgeler dizinine kopyalayıp paket sürümünü ekleyerek adlandırıyorum. Bu nedenle, güncellemede, mevcut olabilecek eski sürümleri de silmek istiyorum.iOS: Varolan tüm dosyaları belirli bir uzantıyla belgelerinizden nasıl silebilirim?

Sadece sqlite dosyalarının tümünü silmek zorunda kalmak istiyorum ve eski sürümleri olanlar için aramak zorunda kalmadan. removeFileAtPath: yöntemini joker olarak kullanmanın bir yolu var mı?

+3

Kısa yanıt: Hayır. Neden döngü yapmak istemiyorsunuz? Eğlenceli. – trojanfoe

+1

Kibrit dizisini almak için NSFileManager kullanmanız gerekir. [Örnek kod burada] [1]. [1]: http://stackoverflow.com/a/4764532/1445366 –

+0

NSFileManager ne der spec geliyor? –

cevap

13

*.sqlite dosyalarının hepsini silmek mi istiyorsunuz? Döngüden kaçınmanın bir yolu yoktur, ancak önce sql olmayan dosyaları filtrelemek ve hızlı numaralandırma kullanarak hızlı performans sağlamak için bir NSPredicate kullanarak sınırlayabilirsiniz. Bunu yapmak için bir yöntem:

+0

Teşekkürler - Kod çalışır gibi görünüyor, ancak uygulama Düzenleyici uygulamasında incelendiğimde dosya gerçekten silinmiyor. Bu sadece geliştirme modunda çalışan bir 'özellik' mi? – Michaela

+0

@Michaela Koddaki bir hataydı. Dosyaları kaldırmak ve silmek için 'removeItemAtPath' için tam yol vermedim. Şimdi sabit. – memmons

+0

"removeItemAtPath:" için 'error: nil 'yerine' NSError * error = nil; '' error: & error' kullanılmasını öneririm, sonra herhangi bir sorunun hatalarını ayıklamanıza yardımcı olması durumunda hata kaydedebilirsiniz. – Robert

İlgili konular