Giter Site home page Giter Site logo

newyaroslav / banana-filesystem-cpp Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 1.36 MB

Простая С++ библиотека для работы с файловой системой

License: MIT License

C++ 0.75% C 99.25%
filesystem file file-system cpp11 cpp save-files load-file directory directories file-name file-library file-list create-directory check-file remove-directory file-size

banana-filesystem-cpp's Introduction

banana-filesystem-cpp

Простая header-only С++ библиотека для работы с файловой системой

Как пользоваться?

  • Получить директорию исполняемого файла
#include <banana_filesystem.hpp>

//...

// выведем в консоль директорию исполняемого файла
cout << bf::get_current_work_dir() << endl;
  • Проверить наличие файла
if(check_file("text.txt")) {
	// файл существует
} else {
	// файла нет
}
  • Получить список файлов (или папок)
std::vector<std::string> list_files; // список файлов и прочего
/* чтобы получить список файлов только в директории "..//..//"
 * имена файлов будут без пути "..//..//"
 * например: "test.txt" "test2.txt"
 */
bf::get_list_files("..//..//", list_files, false); 

/* чтобы получить список файлов не только в директории "..//..//"
 * но и во всех вложенных папках. Все имена файлов будут начинаться с указанного пути
 * например: "..//..//test.txt" "..//..//test2.txt" "..//..//folder//test3.txt" "..//..//folder2//test4.txt"
 * bf::get_list_files("..//..//", list_files);
 * чтобы получить список только папок, и не только в директории "..//..//"
 * но и во всех вложенных папках. Все имена папок будут начинаться с указанного пути
 * например: "..//..//folder//test3.txt" "..//..//folder2//test4.txt"
 * bf::get_list_files("..//..//", list_files, true, true);
 */

// выводим список
for(size_t i = 0; i < list_files.size(); ++i) {
	std::cout << list_files[i] << std::endl;
}
  • Разобрать путь на составляющие
string path = "C:/Users\\user/Downloads";

std::vector<std::string> list_dir;
bf::parse_path(path, list_dir);

for( auto & p : list_dir ) cout << "-> " << p << endl;

/* на экране будет выведено		
 * -> C:
 * -> Users
 * -> user
 * -> Downloads
 */
  • Получить расширение файла и установить новое расширение
string path = "C:/Users\\user/Downloads\\test.dat";
// На экран выведет .dat
std::cout << "file extension (for path): " << bf::get_file_extension(path) << endl;
// На экран выведет C:/Users/user/Downloads/test.test
std::cout << "set file extension (for path): " << bf::set_file_extension(path, ".test") << endl;
  • Создать директорию
bf::create_directory("..//..//test//test2//test3");
  • Удалить директорию
/* Данная функция удаляет директорию со всеми в ней файлами и папками
 * если параметр is_delete_root_directory true, функция удаляет также корневой каталог (который первым указан в path)
 * иначе функция оставляет паку
 */
bf::remove_directory("..\\..\\test", true);
  • Получить размер файла
int file_size = bf::get_file_size("test.txt");
if(file_size >= 0) {
	// файл существует и его размер получен
}
  • Читать файл целиком в std::string
std::string file_data;
int file_size = bf::load_file("test.txt", file_data);
if(file_size >= 0) {
	// файл существует и его размер получен
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.