C++'ta Dosya Boyutu Almak
C++17'den önce, dosya boyutu almak gibi basit işlerin bile karmaşık olduğundan şikayet edilebilirdi. std::filesystem ile işler biraz daha kolaylaşıyor!
C++17'den önce STL, bir dosya sistemiyle çalışmak için hiçbir doğrudan olanak içermiyordu. Yalnızca Boost gibi üçüncü parti kütüphaneler veya işletim sistemlerinin sistem UPA'ları kullanabilirdi.
Dosya boyutunu elde etmek için popüler bir teknik bir dosyayı açmak ve ardından dosyanın boyutunu hesaplamak için dosya konum işaretçisini kullanmaktı. stream kütüphanesini kullanan bir örnek şuradan görülebilir. Programla elde ettiğimiz değer, 38100108. Dosya boyutunun Dolphin'de görünüşü de şu şekilde:
Yeni kütüphane bize kullanabileceğimiz iki fonksiyon veriyor:
Örneğin, buradaki kodla bir dosyanın boyutunu alabiliriz. Eğer error_codes'u da kullanmak istersek şöyle bir kod parçası yazabiliriz.
Bu kısa örneklerle, std::filesystem'daki file_size fonksiyonunun nasıl kullanılacağını gördük. Dosya ve dizinlerle çalışıyorsanız, kodunuzu çok daha rahat ve taşınabilir hale getirebilirsiniz. C++17'de bu ve bunun gibi pek çok güçlü ekleme keşfedilmeyi bekliyor.
Not: Örnekleri GitHub Gist üzerinde tek bir girdiye eklediğim için yazının ilgili bölümlerine ekleyemedim ama hepsini toplu olarak aşağıda görebilirsiniz:
C++17'den önce STL, bir dosya sistemiyle çalışmak için hiçbir doğrudan olanak içermiyordu. Yalnızca Boost gibi üçüncü parti kütüphaneler veya işletim sistemlerinin sistem UPA'ları kullanabilirdi.
Dosya boyutunu elde etmek için popüler bir teknik bir dosyayı açmak ve ardından dosyanın boyutunu hesaplamak için dosya konum işaretçisini kullanmaktı. stream kütüphanesini kullanan bir örnek şuradan görülebilir. Programla elde ettiğimiz değer, 38100108. Dosya boyutunun Dolphin'de görünüşü de şu şekilde:
std::filesystem ile Dosya Boyutu
C++17, dosyalar ve dizinler üzerinde birçok görevi düzene sokan std::filesystem'ı sunmaya başlamıştır. Sadece hızlı bir şekilde dosya boyutunu, özniteliklerini elde etmekle kalmaz, aynı zamanda yeni dizinler oluşturabilir, dosyalar arasında ilerleyebilir, yol nesneleriyle çalışabilirsiniz.Yeni kütüphane bize kullanabileceğimiz iki fonksiyon veriyor:
- std::uintmax_t std::filesystem::file_size( const std::filesystem::path& p );
- std::uintmax_t std::filesystem::directory_entry::file_size() const;
Örneğin, buradaki kodla bir dosyanın boyutunu alabiliriz. Eğer error_codes'u da kullanmak istersek şöyle bir kod parçası yazabiliriz.
Bu kısa örneklerle, std::filesystem'daki file_size fonksiyonunun nasıl kullanılacağını gördük. Dosya ve dizinlerle çalışıyorsanız, kodunuzu çok daha rahat ve taşınabilir hale getirebilirsiniz. C++17'de bu ve bunun gibi pek çok güçlü ekleme keşfedilmeyi bekliyor.
Not: Örnekleri GitHub Gist üzerinde tek bir girdiye eklediğim için yazının ilgili bölümlerine ekleyemedim ama hepsini toplu olarak aşağıda görebilirsiniz:
Yorumlar
Yorum Gönder
sen de yaz yaz yaz buraya yaz bütün sözlerini