Using a Wildcard Argument with the remove() Function

ID: Q48090

5.10 6.00 6.00a 6.00ax 7.00 | 1.00 1.50

MS-DOS                      | WINDOWS
kbprg kbcode

The information in this article applies to:

SUMMARY

When using the remove() function to delete files, passing a wildcard as an argument to remove() does not delete any files.

To delete all the files in a directory, use the _dos_findfirst and _dos_findnext functions to search for each file; then use the remove() function to delete each file. The sample code below demonstrates how to write a code equivalent to remove("*.*").

Sample Code

#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: kbinf 1.00 1.50 5.10 6.00 6.00a 6.00ax 7.00 KBCategory: kbprg kbcode KBSubcategory: CRTIss Keywords : kb16bitonly

Last Reviewed: July 18, 1997