]>
cygwin.com Git - cygwin-apps/setup.git/blob - find.cc
2 * Copyright (c) 2000, Red Hat, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by DJ Delorie <dj@cygnus.com>
16 /* The purpose of this file is to doa recursive find on a given
17 directory, calling a given function for each file found. */
19 static char *cvsid
= "\n%%% $Id$\n";
27 static void (*for_each
)(char *, unsigned int);
28 static char dir
[_MAX_PATH
], *found_part
;
35 char *end
= dir
+ strlen (dir
);
41 h
= FindFirstFile (dir
, &wfd
);
43 if (h
== INVALID_HANDLE_VALUE
)
47 if (strcmp (wfd
.cFileName
, ".") == 0
48 || strcmp (wfd
.cFileName
, "..") == 0)
51 strcpy (end
, wfd
.cFileName
);
53 if (wfd
.dwFileAttributes
& FILE_ATTRIBUTE_DIRECTORY
)
57 for_each (found_part
, wfd
.nFileSizeLow
);
61 } while (FindNextFile (h
, &wfd
));
68 find (char *starting_dir
, void (*_for_each
)(char *, unsigned int))
70 strcpy (dir
, starting_dir
);
72 found_part
= dir
+ strlen (dir
) + 1;
This page took 0.034153 seconds and 5 git commands to generate.