xtd 0.2.0
file_info.h
Go to the documentation of this file.
1 #pragma once
5 #include "file_system_info.h"
6 #include "stream_reader.h"
7 #include "stream_writer.h"
8 #include <fstream>
9 
11 namespace xtd {
13  namespace io {
15  class directory_info;
17 
39  class core_export_ file_info : public xtd::io::file_system_info {
40  public:
42 
45  static const file_info empty;
47 
49 
63  explicit file_info(const xtd::ustring& file_name);
65 
67 
74 
96  xtd::ustring directory_name() const;
97 
131  bool exists() const override;
132 
201  bool is_read_only() const;
270  void is_read_only(bool value);
271 
326  size_t length() const;
327 
361  xtd::ustring name() const override;
363 
365 
407  xtd::io::stream_writer append_text() const;
408 
519  xtd::io::file_info copy_to(const xtd::ustring& dest_file_name) const;
631  xtd::io::file_info copy_to(const xtd::ustring& dest_file_name, bool overwrite) const;
632 
665  std::ofstream create() const;
666 
676  xtd::io::stream_writer create_text() const;
677 
693  void move_to(const xtd::ustring& dest_file_name);
694 
710  void move_to(const xtd::ustring& dest_file_name, bool overwrite);
711 
722  std::fstream open(std::ios::openmode mode) const;
723 
733  std::ifstream open_read() const;
734 
744  xtd::io::stream_reader open_text() const;
745 
754  std::ofstream open_write() const;
755 
829  void remove() const override;
830 
843  file_info replace(const xtd::ustring& destination_file_name, const xtd::ustring& destination_backup_file_name);
845 
846  private:
847  file_info() = default;
848  };
849  }
850 }
The file is a directory.
Provides the base class for both xtd::io::file_info and xtd::io::directory_info objects.
Definition: file_system_info.h:84
Contains xtd::io::stream_writer class.
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Implements a xtd::io::text_reader that reads characters from a byte stream.
Definition: stream_reader.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
Contains xtd::io::file_system_info class.
static const file_info empty
Represents the uninitialized xtd::io::file_info object. This field is constant.
Definition: file_info.h:45
Exposes instance methods for creating, moving, and enumerating through directories and subdirectories...
Definition: directory_info.h:125
Implements a xtd::io::text_writer for writing characters to a stream.
Definition: stream_writer.h:26
Provides static methods for the creation, copying, deletion, moving, and opening of files...
Definition: file_info.h:39
Contains xtd::io::stream_reader class.