Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Sem5 / Sem5 / Sem5

.cpp
Скачиваний:
1
Добавлен:
10.04.2019
Размер:
9.93 Кб
Скачать
яю// Sem5.cpp: >?@545;O5B B>G:C 2E>40 4;O :>=A>;L=>3> ?@8;>65=8O.

//



#include "stdlib.h"

#include <iostream>

#include <cstdlib>

#include <string>

#include <vector>

#include <fstream>

using namespace std;



char* StringToChar(string s)

{

	char* str = new char[s.size() + 1];

	int i;

	for (i = 0; i < s.size(); i++)

	{

		str[i] = s[i];

	}

	str[i] = '\0';

	return str;

}



vector<string> getList(string FileName)			// A>740=85 A?8A:0 =0720=89 D09;>2

{

	vector<string> myList;

	string buffer;

	ifstream in(FileName);

	while (!in.eof())

	{

		in >> buffer;

		if (!in.eof()) myList.push_back(buffer);

	}

	return myList;

}



void print(vector<string> list)					// 2K2>4 A?8A:0 =0 :>=A>;L

{

	for (int i = 0; i < list.size(); i++)

	{

		cout << list[i] << " ";

	}

	cout << endl;



}



vector<string> compare(vector<string> list1, vector<string> list2)			// 40=K 420 A?8A:0.

{																			// 2 =>2K9 A?8A>: 70=>AOBAO D09;K,

	vector<string> myList;													// ACI5AB2CNI85 2 ?5@2><, => >BACBAB2CNI5 2> 2B>@><

	bool search;

	for (int i = 0; i < list1.size(); i++)

	{

		search = false;

		for (int j = 0; j < list2.size(); j++)

			if (list1[i] == list2[j]) search = true;

		if (!search) myList.push_back(list1[i]);

	}

	return myList;

}



void del(vector<string> FileList, vector<string> CatList, string way)									// C40;5=85 D09;>2, =5 ACI5AB2CNI8E 2 :0B0;>35-8AB>G=8:5

{

	char str[250];

	char command[200];

	strcpy_s(command, "del ");

	strcat_s(command, StringToChar(way));

	for (int i = 0; i < FileList.size(); i++)

	{

		strcpy_s(str, command);

		strcat_s(str, "\\");

		strcat_s(str, StringToChar(FileList[i]));

		system(str);

	}



	strcpy_s(command, "rmdir /s /q ");

	strcat_s(command, StringToChar(way));

	for (int i = 0; i < CatList.size(); i++)

	{

		strcpy_s(str, command);

		strcat_s(str, "\\");

		strcat_s(str, StringToChar(CatList[i]));

		system(str);

	}

}





void MyCopy(vector<string> FileList, vector<string> CatList, string InputWay, string OutputWay)  // :>?8@>20=85 ?0?>: 8 D09;>2

{

	char str[250];

	char command[150];

	char output[100];

	strcpy_s(command, "copy \"");

	strcat_s(command, StringToChar(InputWay));

	strcpy_s(output, "\" \"");

	strcat_s(output, StringToChar(OutputWay));

	for (int i = 0; i < FileList.size(); i++)

	{

		strcpy_s(str, command);

		strcat_s(str, "\\");

		strcat_s(str, StringToChar(FileList[i]));

		strcat_s(str, output);

		strcat_s(str, "\"");

		system(str);

	}



	strcpy_s(command, "xcopy \"");

	strcat_s(command, StringToChar(InputWay));





	for (int i = 0; i < CatList.size(); i++)

	{

		strcpy_s(str, command);

		strcat_s(str, "\\");

		strcat_s(str, StringToChar(CatList[i]));

		strcat_s(str, output);

		strcat_s(str, "\\");

		strcat_s(str, StringToChar(CatList[i]));

		strcat_s(str, "\" /s /e /i");

		system(str);

	}

}





int main()

{

	char* str = "pause";



	// K2>4 A>45@68<>3> ?0?:8 2 D09;

	// ><0=40					dir

	// 4@5A ?0?:8				C:\\Users\\miran\\Desktop\\MyFiles

	// A8<2>; 70?8A8 2 D09;		>

	// CBL : D09;C				C:\\Users\\miran\\Desktop\\Seminar_6\\Seminar_6\\ListOfFiles_1.txt

	// B@81CBK					/B  /A:D



	// CB>8B >1@0B8BL 2=8<0=85, GB> =5>1E>48<> 22>48BL 420 A;5H0, B.:. 2 AB@>:5 \\ == \. =0G5 \ 2>A?@8=8<05BAO :0: :><0=40



	string way1 = "C:\\Users\\miran\\Desktop\\MyFiles";

	string way2 = "C:\\Users\\miran\\Desktop\\NoMyFiles";





	str = "dir C:\\Users\\miran\\Desktop\\MyFiles > C:\\Users\\miran\\Desktop\\Seminar_6\\Seminar_6\\ListOfFiles_1.txt /B /A:-D";

	system(str);



	str = "dir C:\\Users\\miran\\Desktop\\NoMyFiles > C:\\Users\\miran\\Desktop\\Seminar_6\\Seminar_6\\ListOfFiles_2.txt /B /A:-D";

	system(str);



	str = "dir C:\\Users\\miran\\Desktop\\MyFiles > C:\\Users\\miran\\Desktop\\Seminar_6\\Seminar_6\\ListOfCatalogs_1.txt /B /A:D";

	system(str);



	str = "dir C:\\Users\\miran\\Desktop\\NoMyFiles > C:\\Users\\miran\\Desktop\\Seminar_6\\Seminar_6\\ListOfCatalogs_2.txt /B /A:D";

	system(str);



	vector<string> FileList1 = getList("ListOfFiles_1.txt");		/// !>7405< A?8A:8 D09;>2 8 ?0?>:

	vector<string> FileList2 = getList("ListOfFiles_2.txt");

	vector<string> CatList1 = getList("ListOfCatalogs_1.txt");

	vector<string> CatList2 = getList("ListOfCatalogs_2.txt");

	vector <string> FileBuffer;

	vector <string> CatsBuffer;





	int ans;

	cout << "Please, choose way-source! (Input '1' or '2')" << endl;

	cout << "  1 -" << way1 << endl;

	cout << "  2 -" << way2 << endl;

	cin >> ans;

	if (ans == 2)

	{

		string way = way1;

		way1 = way2;

		way2 = way;



		vector<string> FileList = FileList1;

		FileList1 = FileList2;

		FileList2 = FileList;



		vector<string> CatList = CatList1;

		CatList1 = CatList2;

		CatList2 = CatList;

	}



	del(compare(FileList2, FileList1), compare(CatList2, CatList1), way2);

	MyCopy(compare(FileList1, FileList2), compare(CatList1, CatList2), way1, way2);



	str = "pause";

	system(str);

	return 0;

}
Соседние файлы в папке Sem5
  • #
    10.04.20199.93 Кб1Sem5.cpp
  • #
    10.04.20197.67 Кб1Sem5.vcxproj
  • #
    10.04.20191.17 Кб1Sem5.vcxproj.filters
  • #
    10.04.2019165 б1Sem5.vcxproj.user
  • #
    10.04.2019756 б1stdafx.cpp
  • #
    10.04.2019728 б1stdafx.h