filehelp.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. #ifndef __FILEHELPING2_20151107__
  2. #define __FILEHELPING2_20151107__
  3. #pragma once
  4. #include "findfile2.h"
  5. #include "filekernel.h"
  6. #define USE_IMGEXT 0
  7. class filehelpImpl2 : public findfile2
  8. {
  9. public:
  10. filehelpImpl2(void);
  11. ~filehelpImpl2(void);
  12. volatile LONG m_nRef;
  13. virtual LONG AddRef( );
  14. virtual LONG Release( );
  15. virtual HRESULT QueryInterface(REFIID riid, void **ppvObject);
  16. public:
  17. // 查找全部
  18. BOOL getall(
  19. IN LPCTSTR lpfolder, // 要查找的目录;
  20. IN LPCTSTR lpfindext, // 要查找的扩展名;
  21. IN OUT CStringArray *pvtfiles, // 返回要查找的文件全名;
  22. IN OUT CStringArray *pvtnames, // 返回要查找的文件名(无路径,包含扩展名);
  23. IN OUT CStringArray *pvtnames_noext, // 返回要查找的文件名(无路径,不含扩展名);
  24. IN OUT CStringArray *pvtfolders // 返回要查找的子目录;
  25. );
  26. BOOL getsubfolder(
  27. IN LPCTSTR lpfolder, // 要查找的目录;
  28. IN CStringArray *pvtfolders // 返回子文件夹;
  29. );
  30. BOOL getallsubfolder(
  31. IN LPCTSTR lpfolder, // 要查找的目录;
  32. IN CStringArray *pvtfolders // 返回所有子文件夹;
  33. );
  34. //////////////////////////////////////////////////////////////////////////
  35. BOOL getfiles_findin_subfolder(
  36. IN LPCTSTR lpfolder, // 要查找的目录;
  37. IN LPCTSTR lpfindext, // 要查找的扩展名;
  38. IN CStringArray *pvtfiles // 返回要查找的文件全名;
  39. );
  40. BOOL getfiles_findout_subfolder(
  41. IN LPCTSTR lpfolder, // 要查找的目录;
  42. IN LPCTSTR lpfindext, // 要查找的扩展名;
  43. IN OUT CStringArray *pvtfiles // 返回要查找的文件全名;
  44. );
  45. BOOL getfiles_within_subfolder(
  46. IN LPCTSTR lpfolder, // 要查找的目录;
  47. IN LPCTSTR lpfindext, // 要查找的扩展名;
  48. IN CStringArray *pvtfiles // 返回要查找的文件全名;
  49. );
  50. //////////////////////////////////////////////////////////////////////////
  51. virtual BOOL getfiles_bynames_findin_subfolder(
  52. IN LPCTSTR lpfolder, // 要查找的目录;
  53. IN LPCTSTR lpfindext, // 要查找的扩展名;
  54. IN CStringArray &vtnames,
  55. IN CStringArray *pvtfiles // 返回要查找的文件全名;
  56. );
  57. virtual BOOL getfiles_bynames_findout_subfolder(
  58. IN LPCTSTR lpfolder, // 要查找的目录;
  59. IN LPCTSTR lpfindext, // 要查找的扩展名;
  60. IN CStringArray &vtnames,
  61. IN OUT CStringArray *pvtfiles // 返回要查找的文件全名;
  62. ) ;
  63. virtual BOOL getfiles_bynames_within_subfolder(
  64. IN LPCTSTR lpfolder, // 要查找的目录;
  65. IN LPCTSTR lpfindext, // 要查找的扩展名;
  66. IN CStringArray &vtnames,
  67. IN CStringArray *pvtfiles // 返回要查找的文件全名;
  68. ) ;
  69. //////////////////////////////////////////////////////////////////////////
  70. BOOL getnames_findin_subfolder(
  71. IN LPCTSTR lpfolder, // 要查找的目录;
  72. IN LPCTSTR lpfindext, // 要查找的扩展名;
  73. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,包含扩展名);
  74. );
  75. BOOL getnames_findout_subfolder(
  76. IN LPCTSTR lpfolder, // 要查找的目录;
  77. IN LPCTSTR lpfindext, // 要查找的扩展名;
  78. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,包含扩展名);
  79. );
  80. BOOL getnames_within_subfolder(
  81. IN LPCTSTR lpfolder, // 要查找的目录;
  82. IN LPCTSTR lpfindext, // 要查找的扩展名;
  83. IN CStringArray *pvtnames // 返回要查找的文件全名;
  84. );
  85. //////////////////////////////////////////////////////////////////////////
  86. BOOL getnames_findin_subfolder_ex(
  87. IN LPCTSTR lpfolder, // 要查找的目录;
  88. IN LPCTSTR lpfindext, // 要查找的扩展名;
  89. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  90. );
  91. BOOL getnames_findout_subfolder_ex(
  92. IN LPCTSTR lpfolder, // 要查找的目录;
  93. IN LPCTSTR lpfindext, // 要查找的扩展名;
  94. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  95. );
  96. BOOL getnames_within_subfolder_ex(
  97. IN LPCTSTR lpfolder, // 要查找的目录;
  98. IN LPCTSTR lpfindext, // 要查找的扩展名;
  99. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  100. );
  101. //////////////////////////////////////////////////////////////////////////
  102. BOOL getfilesnames_findin_subfolder(
  103. IN LPCTSTR lpfolder, // 要查找的目录;
  104. IN LPCTSTR lpfindext, // 要查找的扩展名;
  105. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  106. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,包含扩展名);
  107. );
  108. BOOL getfilesnames_findout_subfolder(
  109. IN LPCTSTR lpfolder, // 要查找的目录;
  110. IN LPCTSTR lpfindext, // 要查找的扩展名;
  111. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  112. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,包含扩展名);
  113. );
  114. BOOL getfilesnames_within_subfolder(
  115. IN LPCTSTR lpfolder, // 要查找的目录;
  116. IN LPCTSTR lpfindext, // 要查找的扩展名;
  117. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  118. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,包含扩展名);
  119. );
  120. //////////////////////////////////////////////////////////////////////////
  121. BOOL getfilesnames_findin_subfolder_ex(
  122. IN LPCTSTR lpfolder, // 要查找的目录;
  123. IN LPCTSTR lpfindext, // 要查找的扩展名;
  124. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  125. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  126. );
  127. BOOL getfilesnames_findout_subfolder_ex(
  128. IN LPCTSTR lpfolder, // 要查找的目录;
  129. IN LPCTSTR lpfindext, // 要查找的扩展名;
  130. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  131. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  132. );
  133. BOOL getfilesnames_within_subfolder_ex(
  134. IN LPCTSTR lpfolder, // 要查找的目录;
  135. IN LPCTSTR lpfindext, // 要查找的扩展名;
  136. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  137. IN CStringArray *pvtnames // 返回要查找的文件名(无路径,不含扩展名);
  138. );
  139. //////////////////////////////////////////////////////////////////////////
  140. BOOL getfiles_withthumbnail_findin_subfolder(
  141. IN LPCTSTR lpfolder, // 要查找的目录;
  142. IN LPCTSTR lpfindext, // 要查找的扩展名;
  143. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  144. IN CStringArray *pvtfiles_sth, // 返回要查找的文件全名;
  145. IN CStringArray *pvtfiles_mth // 返回要查找的文件全名;
  146. ) ;
  147. BOOL getfiles_withthumbnail_findout_subfolder(
  148. IN LPCTSTR lpfolder, // 要查找的目录;
  149. IN LPCTSTR lpfindext, // 要查找的扩展名;
  150. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  151. IN CStringArray *pvtfiles_sth, // 返回要查找的文件全名;
  152. IN CStringArray *pvtfiles_mth // 返回要查找的文件全名;
  153. ) ;
  154. BOOL getfiles_withthumbnail_within_subfolder(
  155. IN LPCTSTR lpfolder, // 要查找的目录;
  156. IN LPCTSTR lpfindext, // 要查找的扩展名;
  157. IN CStringArray *pvtfiles, // 返回要查找的文件全名;
  158. IN CStringArray *pvtfiles_sth, // 返回要查找的文件全名;
  159. IN CStringArray *pvtfiles_mth // 返回要查找的文件全名;
  160. ) ;
  161. public:
  162. //////////////////////////////////////////////////////////////////////////
  163. BOOL comparename_findin_names(IN LPCTSTR name);
  164. // 两个文件对比,是否同名;
  165. BOOL comparename_2file(
  166. IN LPCTSTR file1, // 文件1(全路径);
  167. IN LPCTSTR file2 // 文件2(全路径);
  168. );
  169. // 指定文件名,与一组文件名对比;
  170. BOOL comparename_findin_names(
  171. IN LPCTSTR name, // 文件名(无路径,不含扩展名);
  172. IN CStringArray& vtnames // 一组文件名(无路径,不含扩展名);
  173. );
  174. // 指定文件名,与一组文件对比;
  175. BOOL comparename_findin_files(
  176. IN LPCTSTR name, // 文件名(不含扩展名);
  177. IN CStringArray& vtfiles // 一组文件(全路径);
  178. );
  179. // 指定文件名,与一文件夹对比;
  180. BOOL comparename_findin_folder(
  181. IN LPCTSTR name, // 文件名(不含扩展名);
  182. IN LPCTSTR folder, // 文件夹;
  183. IN LPCTSTR findext, // 要查找的扩展名;
  184. IN BOOL bsubfolder // 是否查找文件夹内的子目录;
  185. );
  186. //////////////////////////////////////////////////////////////////////////
  187. // 指定一组文件名,与另一组文件名对比;
  188. INT comparenames_findin_names(
  189. IN CStringArray& vtSrcnames, // 指定的一组源文件名(无路径,不含扩展名);
  190. IN CStringArray& vtDesnames, // 指定的一组目标文件名(无路径,不含扩展名);
  191. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  192. );
  193. // 指定一组文件名,与一组文件(全路径)对比;
  194. INT comparenames_findin_files(
  195. IN CStringArray& vtnames, // 指定的一组源文件名(无路径,不含扩展名);
  196. IN CStringArray& vtfiles, // 指定的一组目标文件(全路径);
  197. IN LPCTSTR findext, // 要查找的扩展名;
  198. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  199. );
  200. // 指定的一组文件名,与一文件夹对比;
  201. INT comparenames_findin_folder(
  202. IN CStringArray& vtnames, // 指定的一组源文件名(无路径,不含扩展名);
  203. IN LPCTSTR folder, // 文件夹;
  204. IN BOOL bsubfolder, // 是否查找文件夹内的子目录;
  205. IN LPCTSTR findext, // 要查找的扩展名;
  206. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  207. );
  208. //////////////////////////////////////////////////////////////////////////
  209. // 指定一文件,与一组文件名对比;
  210. BOOL comparefile_findin_names(
  211. IN LPCTSTR file, // 文件1(全路径);
  212. IN CStringArray& vtnames // 指定的一组文件名(无路径,不含扩展名)
  213. );
  214. // 指定一文件,与一组文件对比;
  215. BOOL comparefile_findin_files(
  216. IN LPCTSTR file, // 文件(全路径);
  217. IN CStringArray& vtfiles, // 指定的一组文件(全路径)
  218. IN LPCTSTR findext // 要查找的扩展名;
  219. );
  220. // 指定一文件,与一文件夹对比;
  221. BOOL comparefile_findin_folder(
  222. IN LPCTSTR file, // 文件(全路径);
  223. IN LPCTSTR folder, // 文件夹;
  224. IN BOOL bsubfolder, // 是否查找子文件夹;
  225. IN LPCTSTR findext // 要查找的扩展名;
  226. );
  227. //////////////////////////////////////////////////////////////////////////
  228. // 指定一组文件,与另一组文件对比;
  229. INT comparefiles_findin_files(
  230. IN CStringArray &vtfiles1, // 指定的一组源文件;
  231. IN CStringArray &vtfiles2, // 指定的一组目标文件;
  232. IN LPCTSTR findext, // 要查找的扩展名;
  233. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  234. );
  235. // 指定一组文件,与一文件夹对比;
  236. INT comparefiles_findin_folder(
  237. IN CStringArray &vtfiles, // 指定的一组源文件;
  238. IN LPCTSTR folder, // 指定的文件夹;
  239. IN BOOL bsubfolder, // 是否查找子文件夹;
  240. IN LPCTSTR findext, // 要查找的扩展名;
  241. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  242. );
  243. // 文件夹自我对比(所有子文件夹对比)
  244. INT comparefolderself(
  245. IN LPCTSTR folder, // 指定文件夹;
  246. IN LPCTSTR findext, // 要查找的扩展名;
  247. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  248. );
  249. // 指定一文件夹,与另一文件夹对比;
  250. INT comparefolder_findin_folder(
  251. IN LPCTSTR folder1, // 指定源文件夹;
  252. IN LPCTSTR folder2, // 指定目标文件夹;
  253. IN BOOL bsubfolder, // 是否查找子文件夹;
  254. IN LPCTSTR findext, // 要查找的扩展名;
  255. OUT CStringArray *pvtIsonym = NULL // 返回同名的文件名;
  256. );
  257. };
  258. #endif