//To be compiled using VS 2013 #include #include #include #include #include using namespace std; void createFile(string path) { string fullpath = path; ofstream d(path); if (d.good() == true) { d.close(); MessageBox(NULL, L"Action done successfully!", L"Done!", MB_OK | MB_ICONINFORMATION); } else MessageBox(NULL, L"Error while creating file!", NULL, MB_OK | MB_ICONSTOP); } void deleteFile(string path) { const char* fullpathc = path.c_str(); if (remove(fullpathc) != 0) { MessageBox(NULL, L"Error while deleting file!", NULL, MB_OK | MB_ICONSTOP); } else { MessageBox(NULL, L"File deleted successfully!", L"Done!", MB_OK | MB_ICONINFORMATION); } } void writeToFile(string path, string toWrite, bool isNew) { const char* dane = toWrite.c_str(); ofstream d; d.open(path, ofstream::out | ofstream::app); if (d.good() == true) { d.seekp(0, d.end); if (isNew == true) { d.write("\n", 1); } d.write(dane, toWrite.length()); d.close(); MessageBox(NULL, L"Action done successfully!", L"Done!", MB_OK | MB_ICONINFORMATION); } else MessageBox(NULL, L"Error while accessing file!", NULL, MB_OK | MB_ICONSTOP); } void printFile(string path) { ifstream d; string dane = ""; d.open(path, ifstream::in); if (d.good() == true) { while (d.eof() == false) { getline(d, dane); cout << dane << endl; } d.close(); _getch(); } else MessageBox(NULL, L"Error while accessing file!", NULL, MB_OK | MB_ICONSTOP); } void renameFile(string pathsz, string newnames) { size_t found = pathsz.find_last_of("\\"); const char* path = pathsz.c_str(); newnames.insert(0, pathsz, 0, found + 1); newnames = newnames; const char* newname = newnames.c_str(); int result = rename(path, newname); if (result == 0) { MessageBox(NULL, L"Action done successfully!", L"Done!", MB_OK | MB_ICONINFORMATION); } else MessageBox(NULL, L"Error while renaming file!", NULL, MB_OK | MB_ICONSTOP); } int main() { unsigned char wybor; string buf1; string buf3; int isNew; bool isNewB; do { system("cls"); cin.clear(); cin.sync(); buf1 = ""; buf3 = ""; isNew = 0; isNewB = false; cout << "File managing. Press:\n1 - create a file\n2 - delete a file\n3 - write to an existent file\n4 - read from a file\n5 - rename a file\n0 - quit\nChoose an option: "; wybor = _getch(); system("cls"); switch (wybor) { case '1': { cout << "Give your precious file a path: "; getline(cin, buf1); createFile(buf1); } break; case '2': { cout << "Path of file to delete: "; getline(cin, buf1); deleteFile(buf1); } break; case '3': { cout << "Path of file to write to: "; getline(cin, buf1); cout << "Data to write to file: "; getline(cin, buf3); cout << "Do you wish to write the data in a new line?\n0 is no, 1 is yes: "; while (!(cin >> isNew)) { cout << "Incorrect data!"; cin.clear(); cin.sync(); } if (isNew != 0) { isNewB = true; } writeToFile(buf1, buf3, isNewB); } break; case '4': { cout << "Path of file to read from: "; getline(cin, buf1); printFile(buf1); } break; case '5': { cout << "Path of file to rename: "; getline(cin, buf1); cout << "New name: "; getline(cin, buf3); renameFile(buf1, buf3); } break; } } while (wybor != '0'); return 0; }