home *** CD-ROM | disk | FTP | other *** search
/ Xentax forum attachments archive / xentax.7z / 5036 / source.7z / x_findfile.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2011-12-13  |  1.9 KB  |  95 lines

  1. #include "xentax.h"
  2.  
  3. find_file::find_file() : handle(0)
  4. {
  5.  ZeroMemory(&find32, sizeof(find32));
  6. }
  7.  
  8. find_file::~find_file()
  9. {
  10.  close();
  11. }
  12.  
  13. void find_file::close(void)
  14. {
  15.  // must check for valid handle in 
  16.  // VC++ .NET or else exception results
  17.  if(handle) FindClose(handle);
  18.  handle = 0;
  19.  ZeroMemory((void*)&find32, sizeof(find32)); 
  20. }
  21.  
  22. bool find_file::find(const char* filename)
  23. {
  24.  close();
  25.  handle = FindFirstFileA(filename, &find32);
  26.  if(handle == INVALID_HANDLE_VALUE) handle = 0;
  27.  return (handle != 0);
  28. }
  29.  
  30. bool find_file::next(void)
  31. {
  32.  if(handle == 0) return false;
  33.  return (FindNextFileA(handle, &find32) == TRUE);
  34. }
  35.  
  36. bool find_file::is_dots(void)
  37. {
  38.  return (!strcmp(find32.cFileName, ".") || !strcmp(find32.cFileName, ".."));
  39. }
  40.  
  41. bool find_file::is_directory(void)
  42. {
  43.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0);
  44. }
  45.  
  46. bool find_file::is_encrypted(void)
  47. {
  48.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED) != 0);
  49. }
  50.  
  51. bool find_file::is_compressed(void)
  52. {
  53.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_COMPRESSED) != 0);
  54. }
  55.  
  56. bool find_file::is_normal(void)
  57. {
  58.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_NORMAL) != 0);
  59. }
  60.  
  61. bool find_file::is_hidden(void)
  62. {
  63.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN) != 0);
  64. }
  65.  
  66. bool find_file::is_system(void)
  67. {
  68.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_SYSTEM) != 0);
  69. }
  70.  
  71. bool find_file::is_archived(void)
  72. {
  73.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_ARCHIVE) != 0);
  74. }
  75.  
  76. bool find_file::is_readonly(void)
  77. {
  78.  return ((find32.dwFileAttributes & FILE_ATTRIBUTE_READONLY) != 0);
  79. }
  80.  
  81. const char* find_file::filename(void)
  82. {
  83.  strlwr(find32.cFileName);
  84.  return (const char*)find32.cFileName;
  85. }
  86.  
  87. size_t find_file::filesize(void)
  88. {
  89.  return (find32.nFileSizeHigh*(MAXDWORD + 1)) + find32.nFileSizeLow;
  90. }
  91.  
  92. bool find_file::operator !(void)const
  93. {
  94.  return !handle;
  95. }