Через этот фрагмент я пытаюсь удалить определенный файл из каталога. Вот код для этого.
/* char* cpathToDeleteGND;
char* cpathToDeleteFST;
char* cpathToDeleteSND;
*/
cout << "Enter the name to be removed : ";
cin.ignore();
getline( cin , fullName );
string pathToDeleteGND = "d:/HostelManager/studentDetails/groundFloor/" + fullName + ".txt";
string pathToDeleteFST = "d:/HostelManager/studentDetails/firstFloor/" + fullName + ".txt";
string pathToDeleteSND = "d:/HostelManager/studentDetails/secondFloor/" + fullName + ".txt";
ifstream checkToDeleteGND( pathToDeleteGND );
ifstream checkToDeleteFST( pathToDeleteFST );
ifstream checkToDeleteSND( pathToDeleteSND );
cpathToDeleteGND = new char[ pathToDeleteGND.size() + 1 ];
cpathToDeleteFST = new char[ pathToDeleteFST.size() + 1 ];
cpathToDeleteSND = new char[ pathToDeleteSND.size() + 1 ];
strcpy( cpathToDeleteGND , pathToDeleteGND.c_str() );
strcpy( cpathToDeleteFST , pathToDeleteFST.c_str() );
strcpy( cpathToDeleteSND , pathToDeleteSND.c_str() );
if( checkToDeleteGND ) {
if( remove( cpathToDeleteGND) == 0 ) {
cout << "\nStudent details cleared successfully !";
}
} else if( checkToDeleteFST) {
if( remove( cpathToDeleteFST) == 0 ) {
cout << "\nStudent details cleared successfully ! ";
}
} else if( checkToDeleteSND ) {
if( remove( cpathToDeleteSND) == 0 ) {
cout << "\nStudent details cleared successfully !";
}
} else {
cout << "\nIt seems that either the student has already been removed or does not exist.";
}
Я даю имя, которое следует удалить из каталога. Хотя блоки if if работают, но функция удаления не работает. Я не могу понять причину ..
Например, вывод выглядит так:
Enter the name to be removed : diana
Press any key to continue . . .
Файл diana.txt
существовал, поэтому он не выполнил последний блок else
. Но remove function
не работает. Почему это?