setup.cpp
上传用户:hyb6888
上传日期:2016-01-24
资源大小:5186k
文件大小:3k
源码类别:

输入法编程

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "windows.h"
  3. #include "setup.h"
  4. setup::setup()
  5. {
  6. int i;
  7. i = GetSystemDirectory(SysPath, 256);
  8. SysPath[i]=0;
  9. GetModuleFileName(0,AppPath,256);
  10. for(i=strlen(AppPath)-1;i>=0;i--)
  11. if(AppPath[i]=='\')
  12. {
  13. AppPath[i]=0;
  14. break;
  15. }
  16. }
  17. setup::~setup()
  18. {
  19. ;
  20. }
  21. int setup::FileCopyBAT(char* Path1, char*Path2,char*batFile)
  22. {
  23.     FILE  *infp; 
  24. char buf[1000];
  25. char copy1[1000],copy2[1000],*pp ;
  26.     infp=fopen(batFile, "rb");   //打开文字文件只读 
  27.     if(infp!=NULL)
  28. {
  29. while(!feof(infp))
  30. {
  31. fReadLine(buf,infp);
  32. pp=MyCutStr(buf," ");
  33. if(*pp!=0)
  34. {
  35. sprintf(copy1,"%s\%s", Path1,pp);
  36. sprintf(copy2,"%s\%s", Path2,buf);
  37. CopyFile(copy1,copy2,0);
  38. // if(!FileExists(copy2))
  39. // MessageBox(0,"CopyFile函数打开文件失败",copy2,0);
  40. }
  41. }
  42. fclose(infp);
  43. }
  44. return 0;
  45. }
  46. char*setup:: MyCutStr(char* ss, char*CutChar)
  47. {
  48. //用给定的字符串把字符串切成两半,并半部返回,后半部放入第一个参数中
  49. int i=0 ;
  50. char *p;
  51. while(1)
  52. {
  53. if(ss[i]==0||ss[i]==CutChar[0])
  54. {
  55. p=&ss[i];
  56. if(ss[i]==CutChar[0])
  57. {
  58. while(*p==CutChar[0])
  59. p++;
  60. ss[i]=0;
  61. }
  62. break;
  63. }
  64. i++;
  65. }
  66. return p;
  67. }
  68. bool setup::fReadLine(char *buf, FILE *fp)
  69. {
  70. char c;
  71. int i=0;
  72. buf[0]=0;
  73. //得到第一个有效字符
  74. while(!feof(fp))
  75. {
  76. c=getc(fp);
  77. if(!(13==c||10==c))
  78. break;
  79. }
  80. while(!feof(fp))
  81. {
  82. buf[i]=c;
  83. i++;
  84. c=getc(fp);
  85. if(13==c||10==c)
  86. {
  87. buf[i]=0;
  88. break;
  89. }
  90. }
  91. return 1;
  92. }
  93. bool setup:: DirExists(const char *dir)
  94. {
  95. bool tf;
  96. WIN32_FIND_DATA fd; 
  97.     HANDLE hFind = FindFirstFile(dir, &fd); 
  98.     if ((hFind != INVALID_HANDLE_VALUE) && (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) 
  99.     { 
  100. tf = true;
  101.     } 
  102. else
  103. {
  104. tf = false;
  105. }
  106.     FindClose(hFind); 
  107. return tf;
  108. }
  109. //判断文件是否存在
  110. BOOL setup:: FileExists(const char *dir)
  111. {
  112. BOOL tf;
  113. WIN32_FIND_DATA fd; 
  114.     HANDLE hFind = FindFirstFile(dir, &fd); 
  115.     if (hFind !=INVALID_HANDLE_VALUE) 
  116.     { 
  117. tf = TRUE;
  118.     } 
  119. else
  120. {
  121. tf = FALSE;
  122. }
  123.     FindClose(hFind); 
  124. return tf;
  125. }
  126. BOOL setup::copypathfile(char *path1){
  127.     copypathfile(AppPath,path1);
  128. return 0;
  129. }
  130. BOOL setup::copypathfile(char *path1,char *path2){
  131. BOOL tf,bFound;
  132. WIN32_FIND_DATA fd; 
  133.   char copy1[1000],copy2[1000] ;
  134.     HANDLE hFind ; 
  135. if(!DirExists(path2))//没有工作目录就建一个
  136. {   
  137.     //MessageBox(0,"没有工作目录就建一个","错误",0);
  138. CreateDirectory(path2,0);
  139. }
  140. sprintf(copy1,"%s\*",path1);
  141.     hFind = FindFirstFile(copy1, &fd); 
  142. //MessageBox(0,copy1,copy1,0);
  143.     if (hFind !=INVALID_HANDLE_VALUE) {
  144. bFound = FindNextFile(hFind,&fd);
  145. while(bFound)
  146. {
  147. if(strcmp(fd.cFileName,".")!=0 &&  strcmp(fd.cFileName,"..")!=0){
  148. sprintf(copy1,"%s\%s", path1,fd.cFileName);
  149. sprintf(copy2,"%s\%s", path2,fd.cFileName);
  150. if(fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY){
  151. copypathfile(copy1,copy2);
  152. }else
  153. CopyFile(copy1,copy2,0);
  154. }
  155. bFound = FindNextFile(hFind,&fd);
  156. }
  157. }
  158. return 0;
  159. }