1 Temmuz 2019 Pazartesi

std::filesystem

Giriş
Şu satırı dahil ederiz
#include <filesystem>
Kolay kullanmak için şöyle yaparız.
namespace fs = std::filesystem;
copy metodu
Örnek ver

exists metodu
C++14 ile şu satırı dahil ederiz.
#include <experimental/filesystem>

namespace fs = std::experimental::fileystem;
Örnek
C++14 ile şöyle yaparız.
fs::exists("helloworld.txt");
Örnek
Metod sunuç olarak boelan döndüğü için şöyle yaparız.
if(fs::exists("/usr/bin/gedit"))
{
  // use file here
}
Örnek
C++17 ile şöyle yaparız.
std::filesystem::exists("helloworld.txt");
file_size metodu
std::filesystem_error exception fırlatabilir.
Örnek
Şöyle yaparız.
#include <cstdint>
#include <filesystem>

// ...

std::uintmax_t size = std::filesystem::file_size("c:\\foo\\bar.txt");
file_time_type Tipi
C++20'den itibaren bu tip aslında şöyledir
std::chrono::time_point<std::chrono::file_clock>;
Örnek
Şöyle yaparız.
fs::file_time_type file_time = fs::last_write_time(__FILE__);
std::time_t tt = decltype(file_time)::clock::to_time_t(file_time);
std::tm *gmt = std::gmtime(&tt);
std::stringstream buffer;
buffer << std::put_time(gmt, "%A, %d %B %Y %H:%M");
std::string formattedFileTime = buffer.str();
std::cout << formattedFileTime << '\n';
last_write_time metodu
Şöyle yaparız.
fs::file_time_type file_time = fs::last_write_time(__FILE__);
remove metodu
Bu metoddan önce std::remove(path) çağrısı ile de dosya silmek mümkündü. Bu metod ile de std::remove() ile de görülebilen açık olan dosyayı silememe kısıtlama geçerli. Açıklaması şöyle
On Windows std::remove cannot be used to remove a file that is still being held open by the current process.
status metodu
Örnek ver

Hiç yorum yok:

Yorum Gönder