// // zerodir -- List all zero length files in current directory. // // - Excludes system, hidden, or read-only files. // // 05-Jul-2010 Tom Van Baak (tvb) www.LeapSecond.com/tools // #include #include #include #include void main (int argc, char *argv[]) { long fh, n; struct _finddata_t fd; char *pattern; // Get optional filename pattern. pattern = (argc > 1) ? argv[1] : "*"; // Find all files matching pattern. if ((fh = _findfirst(pattern, &fd)) == -1) { fprintf(stderr, "no files matching \"%s\"\n", pattern); exit(1); } n = 0; do { if ( !(fd.attrib & _A_SUBDIR) && fd.size == 0) { if (fd.attrib & _A_SYSTEM) { printf("%s [system]\n", fd.name); } else if (fd.attrib & _A_HIDDEN) { printf("%s [hidden]\n", fd.name); } else if (fd.attrib & _A_RDONLY) { printf("%s [read-only]\n", fd.name); } else { printf("%s\n", fd.name); n += 1; } } } while (_findnext(fh, &fd) != -1); _findclose(fh); if (n == 0) { fprintf(stderr, "no zero length files found\n"); } }