xtd - Reference Guide  0.1.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
file.h
Go to the documentation of this file.
1
4#pragma once
5
6#include <cstdint>
7#include <cstdio>
8#include <fstream>
9#include <vector>
10#include "../core_export.h"
11#include "../static.h"
12#include "../ustring.h"
13#include "file_attributes.h"
14#include "stream_reader.h"
15#include "stream_writer.h"
16
18namespace xtd {
20 namespace io {
28 public:
36 template<typename type_t>
37 static void append_all_lines(const xtd::ustring& path, type_t contents) {
39 for (const auto& line : contents)
40 sw.write_line(line);
41 }
42
50 template<typename type_t>
51 static void append_all_lines(const xtd::ustring& path, const std::initializer_list<type_t>& contents) {
53 for (const auto& line : contents)
54 sw.write_line(line);
55 }
56
63 template<typename type_t>
64 static void append_all_text(const xtd::ustring& path, type_t text) {
66 sw.write(text);
67 }
68
74 static std::ofstream append_text(const xtd::ustring& path);
75
82 static void copy(const xtd::ustring& src, const xtd::ustring& dest);
83
90 static void copy(const xtd::ustring& src, const xtd::ustring& dest, bool overwrite);
91
97 static std::ofstream create(const xtd::ustring& path);
98
105 static std::ofstream create_text(const xtd::ustring& path);
106
112 static bool exists(const xtd::ustring& path) noexcept;
113
119
127 static void move(const xtd::ustring& src, const xtd::ustring& dest);
128
135 static std::fstream open(const xtd::ustring& path, std::ios::openmode mode);
136
142 static std::ifstream open_read(const xtd::ustring& path);
143
149 static std::ifstream open_text(const xtd::ustring& path);
150
156 static std::ofstream open_write(const xtd::ustring& path);
157
164 static std::vector<uint8_t> read_all_bytes(const xtd::ustring& path);
165
172 template<typename char_t>
173 static std::vector<uint8_t> read_all_bytes(const char_t* path) {return read_all_bytes(xtd::ustring(path));}
174
180 static std::vector<xtd::ustring> read_all_lines(const xtd::ustring& path);
181
188
193 static void remove(const xtd::ustring& path);
194
201 static void replace(const xtd::ustring& source_file_name, const xtd::ustring& destination_file_name, const xtd::ustring& destination_backup_file_name);
202
210 template<typename type_t>
211 static void write_all_lines(const xtd::ustring& path, type_t contents) {
213 for (const auto& line : contents)
214 sw.write_line(line);
215 }
216
224 template<typename type_t>
225 static void write_all_lines(const xtd::ustring& path, const std::initializer_list<type_t>& contents) {
227 for (const auto& line : contents)
228 sw.write_line(line);
229 }
230
237 template<typename type_t>
238 static void write_all_text(const xtd::ustring& path, type_t text) {
240 sw.write(text);
241 }
242
248 static std::ofstream write_text(const xtd::ustring& path);
249 };
250 }
251}
Provides static methods for the creation, copying, deletion, moving, and opening of files,...
Definition: file.h:27
static std::ifstream open_read(const xtd::ustring &path)
Opens an existing file for reading.
static void move(const xtd::ustring &src, const xtd::ustring &dest)
Moves a specified file to a new location, providing the option to specify a new file name.
static void replace(const xtd::ustring &source_file_name, const xtd::ustring &destination_file_name, const xtd::ustring &destination_backup_file_name)
Replaces the contents of a specified file with the contents of another file, deleting the original fi...
static void append_all_text(const xtd::ustring &path, type_t text)
Appends text to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:64
static void write_all_lines(const xtd::ustring &path, type_t contents)
Writes lines to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:211
static std::vector< uint8_t > read_all_bytes(const char_t *path)
Opens a binary file, reads the contents of the file into a byte array, and then closes the file.
Definition: file.h:173
static std::ofstream write_text(const xtd::ustring &path)
Creates a std::ofstream that appends text to an existing file.
static void remove(const xtd::ustring &path)
Deletes the specified file.
static std::fstream open(const xtd::ustring &path, std::ios::openmode mode)
Opens a FileStream on the specified path.
static void copy(const xtd::ustring &src, const xtd::ustring &dest, bool overwrite)
Copies an existing file to a new file. Overwriting a file of the same name is allowed.
static std::ofstream create_text(const xtd::ustring &path)
Creates or opens a file for writing text.
static void append_all_lines(const xtd::ustring &path, const std::initializer_list< type_t > &contents)
Appends lines to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:51
static std::ofstream open_write(const xtd::ustring &path)
Opens an existing file for writing.
static void write_all_lines(const xtd::ustring &path, const std::initializer_list< type_t > &contents)
Writes lines to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:225
static std::ifstream open_text(const xtd::ustring &path)
Opens an existing file for reading.
static void append_all_lines(const xtd::ustring &path, type_t contents)
Appends lines to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:37
static void write_all_text(const xtd::ustring &path, type_t text)
Writes text to a file, and then closes the file. If the specified file does not exist,...
Definition: file.h:238
static void copy(const xtd::ustring &src, const xtd::ustring &dest)
Copies an existing file to a new file. Overwriting a file of the same name is not allowed.
static xtd::io::file_attributes get_attributes(const xtd::ustring &src)
Gets the xtd::io::file_attributes of the file on the path.
static xtd::ustring read_all_text(const xtd::ustring &path)
Opens a text file, reads all text of the file, and then closes the file.
static std::vector< uint8_t > read_all_bytes(const xtd::ustring &path)
Opens a binary file, reads the contents of the file into a byte array, and then closes the file.
static std::ofstream create(const xtd::ustring &path)
Creates or overwrites a file in the specified path.
static std::vector< xtd::ustring > read_all_lines(const xtd::ustring &path)
Opens a text file, reads all lines of the file, and then closes the file.
static bool exists(const xtd::ustring &path) noexcept
Determines whether the specified file exists.
static std::ofstream append_text(const xtd::ustring &path)
Creates a std::ofstream that appends text to an existing file.
Performs operations on std::basic_string instances that contain file or directory path information....
Definition: path.h:29
Implements a xtd::io::text_writer for writing characters to a stream.
Definition: stream_writer.h:20
void write(const xtd::ustring &value) override
Writes the specified string value to the text stream.
void write_line()
Writes new line to the text stream.
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
Contains xtd::io::file_attributes enum class.
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition: static.h:38
#define core_export_
Define shared library export.
Definition: core_export.h:13
file_attributes
Provides attributes for files and directories.
Definition: file_attributes.h:17
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::io::stream_reader class.
Contains xtd::io::stream_writer class.