// Thanks from Prakash Katudia//
// Program for simple file manager//
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
int my_open();
void my_close(int);
void my_write(int);
void my_read(int);
int allfiles();
void clear(int);
struct my_task
{
int pid;
char fl_name[10];
int len;
};
struct my_task t1[10];
static flcnt;
int main()
{
int ch1,fln,ch2;
ch2=1;
while(ch2)
{
printf("\n\n**************************************************Welcome********************************************************\n");
printf("\n .........What you want.............\n");
printf("1.Create File\n2.Delete file\n3.Enter Data in your file\n4.Read Data in your file\n5.To see all files and folders\n6. Terminate\n\n Please Input::::: ");
scanf("%d",&ch1);
switch(ch1)
{
case 1:
t1[flcnt].pid=my_open();
flcnt++;
break;
case 2: fln=allfiles();
my_close(fln);
flcnt--;
break;
case 3: fln=allfiles();
if(fln==11)
{break;}
else
{my_write(fln);
break;}
case 4: fln=allfiles();
if(fln==11)
{break;}
else
{my_read(fln);
break;
}
case 5: fln=allfiles();
break;
case 6: exit(0);
break;
default:
printf("\n----Wrong Input---\n");
}
printf("\nDo you want to continue----press 1----otherwise press 0--------\n");
scanf("%d",&ch2);
}
return 0;
}
int my_open()
{
int i,fd;
i=flcnt;
printf("\n----Hello you are in my open----");
printf("\nEnter your file Name..");
scanf("%s",t1[i].fl_name);
fd=open(t1[i].fl_name,O_CREAT|O_RDWR,0777);
if(fd==-1)
{
printf("\n Fail");
}
else
{
printf("ur pid is =%d",fd);
}
close(fd);
printf("\n...Total file in your directory..\n\n");
system("ls");
printf("\n\n");
return fd;
}
int allfiles()
{
int i,flag=0;
char buf[10];
printf("Which file you want to do operation\n");
system("ls");
scanf("%s",buf);
for(i=0;i<=flcnt;i++)
{
if(strcmp(buf,t1[i].fl_name)==0)
{
flag++;
break;
}
}
if(flag==0)
{
printf("***********File name is not matched*************\n");
return 11;
}
else
{
// printf("\n****returning value from allfile %d\n",i);
return i;
}
}
void my_write(int fln)
{
int fd;
char buf[50]={0};
int count,len;
fd=open(t1[fln].fl_name,O_RDWR,0777);
if(t1[fln].len!=0)
{
printf("\n*******Already contains are inside in file********\n");
my_read(fln);
return;
}
else
{
printf("\n*********** Ur pid is %d",t1[fln].pid);
// printf("\nUr in my write\n");
printf("\nWrite your contains upto 50 words:: ");
printf("\n");
__fpurge(stdin);
gets(buf);
count=write(t1[fln].pid,buf,strlen(buf));
t1[fln].len=count;
printf("\nTotal written data words are %d ",count);
printf("\n");
printf("\nData entery over\n");
close(fd);
}
}
void my_close(int fln)
{
printf("your file num %d\n",fln);
remove(t1[fln].fl_name);
}
void my_read(int fln)
{
int fd,ch1;
char buf[50]={0};
printf("Total char are =%d\n",t1[fln].len);
//printf("\nHello ur in my read operation\n");
if(t1[fln].len==0)
{
printf("**************File is Empty***********\n");
}
else
{
fd=open(t1[fln].fl_name,O_RDWR,0777);
read(t1[fln].pid,buf,t1[fln].len);
printf("You data in file is\n**************\n %s\n****************\n ",buf);
printf("\nDo you want to clear DATA???\n 1.Yes 2.NO\n");
scanf("%d",&ch1);
if(ch1==1)
{
close(fd);
clear(fln);
}
close(fd);
}
}
void clear(int fln)
{
int count;
char buff[50]={0};
open(t1[fln].fl_name,O_RDWR,0777);
count=write(t1[fln].pid,buff,50);
if(count==-1)
{
printf("\nData cant be cleared");
}
else
{
printf("\nWait for 5 sec to clear\n ....");
sleep(5);
printf("\nData clear..");
t1[fln].len=0;
}
}
If any doubt in the program ask me..
Prakash Katudia
// Program for simple file manager//
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<fcntl.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
int my_open();
void my_close(int);
void my_write(int);
void my_read(int);
int allfiles();
void clear(int);
struct my_task
{
int pid;
char fl_name[10];
int len;
};
struct my_task t1[10];
static flcnt;
int main()
{
int ch1,fln,ch2;
ch2=1;
while(ch2)
{
printf("\n\n**************************************************Welcome********************************************************\n");
printf("\n .........What you want.............\n");
printf("1.Create File\n2.Delete file\n3.Enter Data in your file\n4.Read Data in your file\n5.To see all files and folders\n6. Terminate\n\n Please Input::::: ");
scanf("%d",&ch1);
switch(ch1)
{
case 1:
t1[flcnt].pid=my_open();
flcnt++;
break;
case 2: fln=allfiles();
my_close(fln);
flcnt--;
break;
case 3: fln=allfiles();
if(fln==11)
{break;}
else
{my_write(fln);
break;}
case 4: fln=allfiles();
if(fln==11)
{break;}
else
{my_read(fln);
break;
}
case 5: fln=allfiles();
break;
case 6: exit(0);
break;
default:
printf("\n----Wrong Input---\n");
}
printf("\nDo you want to continue----press 1----otherwise press 0--------\n");
scanf("%d",&ch2);
}
return 0;
}
int my_open()
{
int i,fd;
i=flcnt;
printf("\n----Hello you are in my open----");
printf("\nEnter your file Name..");
scanf("%s",t1[i].fl_name);
fd=open(t1[i].fl_name,O_CREAT|O_RDWR,0777);
if(fd==-1)
{
printf("\n Fail");
}
else
{
printf("ur pid is =%d",fd);
}
close(fd);
printf("\n...Total file in your directory..\n\n");
system("ls");
printf("\n\n");
return fd;
}
int allfiles()
{
int i,flag=0;
char buf[10];
printf("Which file you want to do operation\n");
system("ls");
scanf("%s",buf);
for(i=0;i<=flcnt;i++)
{
if(strcmp(buf,t1[i].fl_name)==0)
{
flag++;
break;
}
}
if(flag==0)
{
printf("***********File name is not matched*************\n");
return 11;
}
else
{
// printf("\n****returning value from allfile %d\n",i);
return i;
}
}
void my_write(int fln)
{
int fd;
char buf[50]={0};
int count,len;
fd=open(t1[fln].fl_name,O_RDWR,0777);
if(t1[fln].len!=0)
{
printf("\n*******Already contains are inside in file********\n");
my_read(fln);
return;
}
else
{
printf("\n*********** Ur pid is %d",t1[fln].pid);
// printf("\nUr in my write\n");
printf("\nWrite your contains upto 50 words:: ");
printf("\n");
__fpurge(stdin);
gets(buf);
count=write(t1[fln].pid,buf,strlen(buf));
t1[fln].len=count;
printf("\nTotal written data words are %d ",count);
printf("\n");
printf("\nData entery over\n");
close(fd);
}
}
void my_close(int fln)
{
printf("your file num %d\n",fln);
remove(t1[fln].fl_name);
}
void my_read(int fln)
{
int fd,ch1;
char buf[50]={0};
printf("Total char are =%d\n",t1[fln].len);
//printf("\nHello ur in my read operation\n");
if(t1[fln].len==0)
{
printf("**************File is Empty***********\n");
}
else
{
fd=open(t1[fln].fl_name,O_RDWR,0777);
read(t1[fln].pid,buf,t1[fln].len);
printf("You data in file is\n**************\n %s\n****************\n ",buf);
printf("\nDo you want to clear DATA???\n 1.Yes 2.NO\n");
scanf("%d",&ch1);
if(ch1==1)
{
close(fd);
clear(fln);
}
close(fd);
}
}
void clear(int fln)
{
int count;
char buff[50]={0};
open(t1[fln].fl_name,O_RDWR,0777);
count=write(t1[fln].pid,buff,50);
if(count==-1)
{
printf("\nData cant be cleared");
}
else
{
printf("\nWait for 5 sec to clear\n ....");
sleep(5);
printf("\nData clear..");
t1[fln].len=0;
}
}
If any doubt in the program ask me..
Prakash Katudia
Good work my friend..
ReplyDeleteGo ahead nd god bless u...