Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
2.7 kB
2
Indexable
Never
#include <iostream>
#include <string>
#include <locale.h>
using namespace std;

string file_format(const string file) {
	string format;
	int i = file.size() - 1;
	char current = file[i];
	while (current != '.') {
		format += current;
		i--;
		current = file[i];
	}
	reverse(format.begin(), format.end());
	return format;
}

string file_name(const string file) {
	string name;
	int i = file.size() - 1;
	char current = file[i];
	while (i > 0) {
		if (current == '.') {
			i--;
			current = file[i];
			while (current != '\\') {
				name += current;
				i--;
				current = file[i];
			}
		}
		else {
			i--;
			current = file[i];
		}
	}
	reverse(name.begin(), name.end());
	return name;
}

string file_path(const string file) {
	string path;
	for (int i = 0; i < (file.size() - file_format(file).size() - file_name(file).size() - 2); i++) {
		path += file[i];
	}
	return path;
}

string file_disk(const string file) {
	string disk;
	int i = 0;
	char current = file[i];
	while (current != '\\') {
		disk += file[i];
		i++;
		current = file[i];
	}
	return disk;
}

int main() {
	setlocale(LC_ALL, "Russian");
	int choice;
	bool stop = false;
	string fpath;
	while (not stop) {
		cout << "Выберите действие:" << endl << "1. Расширение." << endl << "2. Название." << endl << "3. Расположение." << endl << "4. Диск" << endl << "5. Переименование." << endl << "6. Копия файла." << endl << "7. Выход." << endl;
		cin >> choice;
		switch (choice) {
		case 1:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;
			cout << "Расширение: ." << file_format(fpath) << endl;
			break;
		case 2:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;
			cout << "Название: " << file_name(fpath) << endl;
			break;
		case 3:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;
			cout << "Расположение: " << file_path(fpath) << endl;
			break;
		case 4:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;
			cout << "Диск: " << file_disk(fpath) << endl;
			break;
		case 5:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;

			break;
		case 6:
			fpath.clear();
			cout << "Введите путь к файлу: ";
			cin >> fpath;

			break;
		case 7:
			stop = true;
			break;
		default:
			cout << "Введено неверное значение.";
			break;
		}
	}
}