From 73924f94164c2bccf5097d68d1597abb5621f036 Mon Sep 17 00:00:00 2001 From: Leandro Pereira Date: Fri, 1 Oct 2021 20:52:17 -0700 Subject: [PATCH] LibCore: Add File::size() Returns the size in bytes for a file path given its filename. Useful when file size is needed without having to open the file to query it using fstat() or seeking to the end. --- Userland/Libraries/LibCore/File.cpp | 8 ++++++++ Userland/Libraries/LibCore/File.h | 1 + 2 files changed, 9 insertions(+) diff --git a/Userland/Libraries/LibCore/File.cpp b/Userland/Libraries/LibCore/File.cpp index 3f97cd1602..f6aac9e676 100644 --- a/Userland/Libraries/LibCore/File.cpp +++ b/Userland/Libraries/LibCore/File.cpp @@ -153,6 +153,14 @@ bool File::exists(String const& filename) return stat(filename.characters(), &st) == 0; } +Result File::size(String const& filename) +{ + struct stat st; + if (stat(filename.characters(), &st) < 0) + return OSError(errno); + return st.st_size; +} + String File::real_path_for(String const& filename) { if (filename.is_null()) diff --git a/Userland/Libraries/LibCore/File.h b/Userland/Libraries/LibCore/File.h index 30be3aa333..58989eef74 100644 --- a/Userland/Libraries/LibCore/File.h +++ b/Userland/Libraries/LibCore/File.h @@ -34,6 +34,7 @@ public: static bool is_link(String const& filename); static bool exists(String const& filename); + static Result size(String const& filename); static bool ensure_parent_directories(String const& path); static String current_working_directory(); static String absolute_path(String const& path);