Forráskód Böngészése

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.
Leandro Pereira 3 éve
szülő
commit
73924f9416

+ 8 - 0
Userland/Libraries/LibCore/File.cpp

@@ -153,6 +153,14 @@ bool File::exists(String const& filename)
     return stat(filename.characters(), &st) == 0;
 }
 
+Result<size_t, OSError> 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())

+ 1 - 0
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_t, OSError> size(String const& filename);
     static bool ensure_parent_directories(String const& path);
     static String current_working_directory();
     static String absolute_path(String const& path);