- Get link
- X
- Other Apps
Featured Post
Posted by
Unknown
on
- Get link
- X
- Other Apps
Here's a simple implementation of basic File Operations in C++.
It includes :
1. Reading from a File
2. Writing to a File
3. Appending to a File
4. Deleting a File
5. Renaming a File
6. Listing Files in a directory
It includes :
1. Reading from a File
2. Writing to a File
3. Appending to a File
4. Deleting a File
5. Renaming a File
6. Listing Files in a directory
#include <fstream>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>
#include <vector>
using namespace std;
class FileFunctions
{
private:
string filename;
public:
FileFunctions(string);
void readFile();
void writeFile();
void appendFile();
void copyFile();
void renameFile();
void deleteFile();
void listFiles();
~FileFunctions();
};
FileFunctions::FileFunctions(string file)
{
filename = file;
}
FileFunctions::~FileFunctions()
{
}
void FileFunctions::readFile()
{
ifstream inf(filename.c_str());
if (!inf)
{
cout << "Rec.txt could not be opened for reading!" << endl;
return;
}
while (inf)
{
std::string strInput;
getline(inf, strInput);
cout << strInput << endl;
}
inf.close();
}
void FileFunctions::writeFile()
{
ofstream outf(filename.c_str());
if (!outf)
{
cout << "Rec.txt could not be opened for writing!" << endl;
return;
}
outf << "I am a C++ Programmer ." << endl;
outf << "I like C also ." << endl;
outf.close();
}
void FileFunctions::appendFile()
{
ofstream outf(filename.c_str(),ios::app);
if (!outf)
{
cout << "Rec.txt could not be opened for writing!" << endl;
exit(1);
}
outf << "I love algorithms . " << endl;
outf << "I play with data structures." << endl;
outf.close();
}
void FileFunctions::deleteFile()
{
char ch;
string path;
cout<<"Enter the complete path for the file to be deleted : ";
cin>>path;
ifstream infile(path.c_str());
if(!infile)
{
cout<<"File doesn't exists !! "<<endl;
return;
}
cout<<"Do you really want to delete \""<<path<<"\" (Y/N)? "<<endl;
cin>>ch;
if(ch == 'y' || ch == 'Y')
{
remove(path.c_str());
cout<<"File Deleted..."<<endl;
}
}
int getdir (string dir, vector<string> &files)
{
DIR *dp;
struct dirent *dirp;
if((dp = opendir(dir.c_str())) == NULL)
{
cout << "Error(" << errno << ") opening " << dir << endl;
return errno;
}
while ((dirp = readdir(dp)) != NULL)
{
files.push_back(string(dirp->d_name));
}
closedir(dp);
return 0;
}
void FileFunctions::listFiles()
{
string dir = string(".");
vector<string> files = vector<string>();
getdir(dir,files);
cout<<"\nListing files in the current Directory....\n\n";
for (unsigned int i = 0; i < files.size(); i++)
{
cout << files[i] << endl;
}
}
void FileFunctions::renameFile()
{
string oldFileName,newFileName;
cout<<"\nEnter the file name to be renamed : ";
cin>>oldFileName;
cout<<"\nEnter the new file name : ";
cin>>newFileName;
ifstream infile(oldFileName.c_str());
if(!infile)
{
cout<<"File doesn't exists !! "<<endl;
return;
}
else
{
rename(oldFileName.c_str(),newFileName.c_str());
cout<<"File \""<<oldFileName<<"\" renamed to \""<<newFileName<<"\"\n";
}
}
int main()
{
FileFunctions f("Rec.txt");
f.readFile();
f.writeFile();
f.readFile();
f.appendFile();
f.readFile();
f.deleteFile();
f.listFiles();
f.renameFile();
return 0;
}
Comments
Post a Comment
Please post your valuable suggestions