xtd 0.2.0
file_system_info.h
Go to the documentation of this file.
1 #pragma once
5 #include "file_attributes.h"
6 #include "file_permissions.h"
7 #include "../abstract.h"
8 #include "../core_export.h"
9 #include "../date_time.h"
10 #include "../ustring.h"
11 #include <memory>
12 
14 namespace xtd {
16  namespace io {
84  class core_export_ file_system_info abstract_ {
85  public:
87  file_system_info(const file_system_info&) = default;
88  file_system_info& operator =(const file_system_info&) = default;
90 
92 
128  xtd::io::file_attributes attributes() const;
165 
186  const xtd::date_time& creation_time() const;
207  xtd::io::file_system_info& creation_time(const xtd::date_time& value);
208 
223  xtd::date_time creation_time_utc() const;
239  xtd::io::file_system_info& creation_time_utc(const xtd::date_time& value);
240 
244  virtual bool exists() const = 0;
245 
264  virtual xtd::ustring extension() const;
265 
285  xtd::ustring full_name() const;
286 
341  const xtd::date_time& last_access_time() const;
396  xtd::io::file_system_info& last_access_time(const xtd::date_time& value);
397 
411  xtd::date_time last_access_time_utc() const;
427  xtd::io::file_system_info& last_access_time_utc(const xtd::date_time& value);
428 
483  const xtd::date_time& last_write_time() const;
538  xtd::io::file_system_info& last_write_time(const xtd::date_time& value);
539 
552  xtd::date_time last_write_time_utc() const;
565  xtd::io::file_system_info& last_write_time_utc(const xtd::date_time& value);
566 
571  virtual xtd::ustring name() const = 0;
572 
580  xtd::io::file_permissions permissions() const;
591 
593 
599  void refresh();
600 
604  virtual void remove() const = 0;
605 
611  xtd::ustring to_string() const noexcept override;
613 
614  protected:
616 
619  file_system_info() = default;
621 
623 
630 
631  private:
632  xtd::io::file_attributes attributes_ = static_cast<xtd::io::file_attributes>(0);
633  xtd::date_time creation_time_;
634  xtd::date_time last_access_time_;
635  xtd::date_time last_write_time_;
637  };
638  }
639 }
Provides the base class for both xtd::io::file_info and xtd::io::directory_info objects.
Definition: file_system_info.h:84
file_attributes
Provides attributes for files and directories.
Definition: file_attributes.h:22
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Contains xtd::io::file_permissions enum class.
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
std::string to_string(const date_time &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition: date_time.h:1063
Represents an instant in time, typically expressed as a date and time of day.
Definition: date_time.h:78
No permission bits are set.
Contains xtd::io::file_attributes enum class.
#define abstract_
This keyword is used to represents an abstract class.
Definition: abstract.h:23
xtd::ustring full_path_
Represents the fully qualified path of the directory or file.
Definition: file_system_info.h:626
xtd::ustring original_path_
The path originally specified by the user, whether relative or absolute.
Definition: file_system_info.h:628
file_permissions
Provides permissions for files and directories.
Definition: file_permissions.h:22