Mobil Programlama

iOS

DERS PROGRAMI
iOS 201 Ders Programı

Dosya İşlemleri

Lisans: Creative Commons 11.12.2020 tarihinde güncellendi
Bakabileceğiniz Etiketler: Eğitmen: Geleceği Yazanlar Ekibi

 

Objective-C’de dosyalarla işlem yapabilmek için önce NSFileManager  sınıfının bir örneğini (intance) oluşturmak gerekir; bu da defaultManager metodu sayesinde gerçekleştirilebilir:

 

NSFileManager   *dosya;
dosya=[NSFileManager  defaultManager];

 


Bir Dosyanın Sistemde Mevcut Olup Olmadığının Kontrolü

NSFileManager sınıfına ait fileExistsAtParh metodu, belirli bir dosyanın (file) sistemde olup olmadığını kontrol eder. Metot, dosyanın yolunu (path) tanımlayan NSString türünde bir argüman alır. Gönderdiği değer ise mantıksal tipte (boolean) bir sonuçtur ya YES (dosya var) ya da NO’dur (dosya yok).

 

NSFileManager  *dosya;
dosya=[NSFileManager  defaultManager];

if ([dosya fileExistsAtPath: @"/xx/dosya1.txt"] == YES)
    NSLog(@"DOSYA MEVCUTTUR");
else
    NSLog(@"DOSYA MEVCUT DEĞİLDİR");

 

Aktif dizinde (folder, directory)  /xx/dosya1.txt  yolu ile erişilen dosya1.txtt  adlı dosya sistemde mevcutsa  “DOSYA MEVCUTTUR” değilse “DOSYA MEVCUT DEĞİLDİR” mesajı alınacaktır.


İki Dosyanın İçeriğinin Karşılaştırılması

contentsEqualAtPath metodu sayesinde iki dosyanın içeriklerinin tamamen aynı olup olmadığı karşılaştırılabilir.

Metot argüman olarak her iki dosyanın bulunduğu yerleri veren yolları (path) alır ve sonuçta iki dosya arasında eşitlik varsa YES yoksa NO değerini gönderir:

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya  contentsEqualAtPath: @"/xx/dosya1.txt" andPath: @"/xx/notlar.txt"] == YES)
    NSLog (@"DOSYA İÇERİKLERİ AYNIDIR");
else
    NSLog (@"DOSYA İÇERİKLERİ AYNI DEĞİLDİR");

 


Bir Dosyanın Okunabilir Olmasının Kontrolü

isReadableFileAtPath metodu ile bir dosyanın okunabilir olup olmadığını kontrol edebilirsiniz. Metodun tek argümanı ilgili dosyanın yol bilgisidir:

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya  isReadableFileAtPath: @"/xx/dosya1.txt" andPath: @"/xx/notlar.txt"] == YES)
    NSLog (@"DOSYA OKUNABİLİR");
else
    NSLog (@"DOSYA OKUNAMAZ NİTELİKTEDİR");

 


Dosyanın Yazılabilir Olmasının Kontrolü

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya isWritableFileAtPath: @"/xx/dosya1.txt"]  == YES)
    NSLog (@"DOSYA YAZILABİLİR NİTELİKTEDİR");
else
    NSLog (@"DOSYA SADECE OKUNABİLİR NİTELİKTEDİR");

 


Dosyanın Çalıştırılabilir Olmasının Kontrolü

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya isExecutableFileAtPath: @"/xx/dosya1.txt"]  == YES)
    NSLog (@"DOSYA İCRA EDİLEBİLİR NİTELİKTEDİR");
else
    NSLog (@"DOSYA İCRA EDİLEBİLİR NİTELİKTE DEĞİLDİR");

 


Dosyanın Silinebilir Olmasının Kontrolü

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya isDeletableFileAtPath: @"/xx/dosya1.txt"]  == YES)
    NSLog (@"DOSYA SİLİNEBİLİR NİTELİKTEDİR");
else
    NSLog (@"DOSYA SİLİNEBİLİR NİTELİKTE DEĞİLDİR");

 


Bir Dosyanın Başka Bir Dizine Aktarılması

moveItemAtPath metodu ile bir dosya başka bir dizine aktarılabilir:

 

NSFileManager *dosya;
dosya= [NSFileManager defaultManager];

if ([dosya moveItemAtPath: @"/xx/dosya1.txt" toPath: @"/xx/dosya2.txt" error: NULL]  == YES)
    NSLog (@"DOSYA AKTARMA BAŞARILI");
else
    NSLog (@"DOSYA AKTARMA BAŞARISIZ");

 


Bir Dosyayı Kopyalama

copyItemAtPath metodu yardımı ile bir dosyayı bir adresten diğerine kopyalamak mümkündür. Bu metot argüman olarak kaynak dosya ve hedef dosyanın yollarını alır:

 

NSFileManager *dosya;
dosya= [NSFileManager defaultManager];

if ([dosya copyItemAtPath: @"/xx/dosya1.txt" toPath: @"/aa/bb/dosya2.txt" error: NULL]  == YES)
    NSLog (@"KOPYALAMA BAŞARILI");
else
    NSLog (@"KOPYALAMA BAŞARILI DEĞİL");

 


Bir Dosyayı Silme

removeItemAtPath metodu ile yolu belirtilen bir dosya sistemden silinebilir:

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya removeItemAtPath: @"/xx/dosya1.txt" error: NULL]  == YES)
    NSLog (@"SİLME BAŞARILI");
else
    NSLog (@"SİLME BAŞARILI DEĞİL");

 


Dosya İçin Sembolik Link Oluşturma

createSymbolicLinkAtPath metodu ile belirli bir dosya için sembolik link oluşturulabilir:

 

NSFileManager *dosya;
dosya = [NSFileManager defaultManager];

if ([dosya createSymbolicLinkAtPath: @"/aa/bb/dosya2.txt"
    withDestinationPath: @"/xx/dosya1.txt" error: NULL]  == YES)
    NSLog(@"İŞLEM BAŞARILI");
else
    NSLog(@"İŞLEM BAŞARISIZ");

 

Bu örnekte /aa/bb/dosya2.txt" dosyasından  /xx/dosya1.txt  dosyası üzerine bir sembolik link oluşturulmaktadır.