ID Number: Q48090
5.10 6.00 6.00a 6.00ax
MS-DOS
Summary:
When using the remove() function to delete files, passing a wildcard
as an argument to remove() does not delete any files.
More Information:
To delete all the files in a directory, use the _dos_findfirst and
_dos_findnext functions to search for each file and then use the
remove() function to delete each file. The following example
demonstrates how to write a code equivalent to remove("*.*"):
Code Example
------------
#include <stdio.h>
#include <dos.h>
#include <io.h>
main ()
{
struct find_t c_file;
char fn[12];
printf ("Enter file to delete: ");
scanf ("%s", fn);
/* This code section will delete all the files in the directory. */
if (strcmp(fn, "*.*") == 0) {
_dos_findfirst ("*.*", _A_NORMAL, &c_file);
do {
remove (c_file.name);
} while (_dos_findnext (&c_file) == 0);
}
else
/* This section will delete only one file. */
if (remove (fn) == -1)
printf ("File not found\n");
else
printf ("File successfully deleted\n");
}
Additional reference words: 5.00 5.10 6.00 6.00a 6.00ax