INF: Using a Wildcard Argument with the remove() Function

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