昔のコード
プログラミングの勉強を始めたころに書いたコードがでてきたので、さらしてみる。何のために作ったか、ようわからん。
クラス名をzで終わらせてるのが笑える。
Filez.h
#include <windows.h> #include <string> #include <vector> #include <iostream.h> using namespace std; class Filez { string rootDir; public: Filez(); virtual ~Filez(); bool FDelete(string file); bool FCopy(string targetFile,string newFile,bool overWrite); bool FMove(string targetFile,string newFile); bool FDir(vector<string>& files,vector<string>& folders); bool FCreateFolder(string folder); bool FDeleteFolder(string folder); bool FCD(string arg); string GetSystemDir(); string GetCurrentDir(); string GetRootDir(); string GetAppFile(); };
Filez.cpp
#include "Filez.h" /****************************** Construction *******************************/ Filez::Filez() { // Set root folder C: rootDir=GetCurrentDir().substr(0,3); // Set curent folder as root SetCurrentDirectory(rootDir.c_str()); } Filez::~Filez() { } /********************************** GetCurrentDir return curent directory ********************************/ string Filez::GetCurrentDir(){ char buf[256]; GetCurrentDirectory(sizeof(buf),buf); return buf; } /********************************** GetRootDir return root name ********************************/ string Filez::GetRootDir(){ return rootDir; } /********************************** FCD(cd) parameter directory name return true/false ********************************/ bool Filez::FCD(string arg){ if(SetCurrentDirectory(arg.c_str())){ return true; }else{ return false; } } /********************************** FDir parameter vector<string>& files vector<string>& folders return true/false ********************************/ bool Filez::FDir(vector<string>& files,vector<string>& folders){ HANDLE hFind; WIN32_FIND_DATA findData; string target; // check curent is root or not. if(rootDir!=(target=GetCurrentDir())){ target=target+"\\*.*"; }else{ target=target+"*.*"; } // get first file or folder if((hFind =FindFirstFile(target.c_str(), &findData))==INVALID_HANDLE_VALUE){ return false; } // set the file or folder if(findData.dwFileAttributes& FILE_ATTRIBUTE_DIRECTORY) { folders.push_back(findData.cFileName); }else{ files.push_back(findData.cFileName); } // loop files and folders under the curent folder. while(FindNextFile(hFind,&findData)){ if(findData.dwFileAttributes& FILE_ATTRIBUTE_DIRECTORY) { folders.push_back(findData.cFileName); }else{ files.push_back(findData.cFileName); } } return true; } /********************************** GetSystemDir return System Directory path ********************************/ string Filez::GetSystemDir(){ char buf[256]; GetSystemDirectory(buf,sizeof(buf)); return buf; } /********************************** FDelete parameter string file return true/false ********************************/ bool Filez::FDelete(string file){ if(DeleteFile(file.c_str())){ return true; }else{ return false; } } /********************************** FCopy parameter string targetFile string newFile bool overWrite return true/false ********************************/ bool Filez::FCopy(string targetFile,string newFile,bool overWrite){ if(CopyFile(targetFile.c_str(),newFile.c_str(),!overWrite)){ return true; }else{ return false; } } /********************************** FMove parameter string targetFile string newFile return true/false ********************************/ bool Filez::FMove(string targetFile,string newFile){ if(MoveFile(targetFile.c_str(),newFile.c_str())){ return true; }else{ return false; } } /********************************** FDeleteFolder parameter string folder return true/false Must not have sub folder or file ********************************/ bool Filez::FDeleteFolder(string folder){ if(RemoveDirectory(folder.c_str())){ return true; }else{ return false; } } bool Filez::FCreateFolder(string folder){ SECURITY_ATTRIBUTES sec; sec.nLength = sizeof(SECURITY_ATTRIBUTES); sec.lpSecurityDescriptor = NULL; sec.bInheritHandle = NULL; if(CreateDirectory(folder.c_str(), &sec)){ return true; }else{ return false; } } string Filez::GetAppFile(){ char szPath[MAX_PATH]; GetModuleFileName( NULL, szPath, MAX_PATH); return szPath; }
test.cpp
#include "Filez.h" int main(){ Filez f; if(f.FCopy(f.GetAppFile().c_str(),"test.exe",true)){ cout<<"SUCEED"<<endl; } return 0; } ~