From 3ae64c7c3d862b27ecab5bce2671c3abeff39766 Mon Sep 17 00:00:00 2001 From: Timothy Date: Sat, 10 Jul 2021 01:29:07 +1000 Subject: [PATCH] LibCore: Add File method to determine current working directory --- Userland/Libraries/LibCore/File.cpp | 14 ++++++++++++++ Userland/Libraries/LibCore/File.h | 1 + 2 files changed, 15 insertions(+) diff --git a/Userland/Libraries/LibCore/File.cpp b/Userland/Libraries/LibCore/File.cpp index 8cdb47130a..5c403544a7 100644 --- a/Userland/Libraries/LibCore/File.cpp +++ b/Userland/Libraries/LibCore/File.cpp @@ -193,6 +193,20 @@ bool File::ensure_parent_directories(const String& path) return rc == 0; } +String File::current_working_directory() +{ + char* cwd = getcwd(nullptr, 0); + if (!cwd) { + perror("getcwd"); + return {}; + } + + auto cwd_as_string = String(cwd); + free(cwd); + + return cwd_as_string; +} + #ifdef __serenity__ String File::read_link(String const& link_path) diff --git a/Userland/Libraries/LibCore/File.h b/Userland/Libraries/LibCore/File.h index 86738aba94..814d21a6fc 100644 --- a/Userland/Libraries/LibCore/File.h +++ b/Userland/Libraries/LibCore/File.h @@ -35,6 +35,7 @@ public: static bool exists(const String& filename); static bool ensure_parent_directories(const String& path); + static String current_working_directory(); enum class RecursionMode { Allowed,