LibCore: Add Core::File is_device() helpers

The helpers check if the file is a block device or a character device
via stat and fstat.
This commit is contained in:
Idan Horowitz 2021-03-30 00:36:19 +03:00 committed by Andreas Kling
commit aff774c8ac
Notes: sideshowbarker 2024-07-18 20:57:36 +09:00
2 changed files with 19 additions and 0 deletions

View file

@ -110,6 +110,22 @@ bool File::open_impl(IODevice::OpenMode mode, mode_t permissions)
return true;
}
bool File::is_device() const
{
struct stat stat;
if (fstat(fd(), &stat) < 0)
return false;
return S_ISBLK(stat.st_mode) || S_ISCHR(stat.st_mode);
}
bool File::is_device(const String& filename)
{
struct stat st;
if (stat(filename.characters(), &st) < 0)
return false;
return S_ISBLK(st.st_mode) || S_ISCHR(st.st_mode);
}
bool File::is_directory() const
{
struct stat stat;

View file

@ -47,6 +47,9 @@ public:
bool is_directory() const;
static bool is_directory(const String& filename);
bool is_device() const;
static bool is_device(const String& filename);
static bool exists(const String& filename);
static bool ensure_parent_directories(const String& path);