WriteDir.cpp
上传用户:filter2008
上传日期:2007-01-01
资源大小:2k
文件大小:3k
源码类别:

文件操作

开发平台:

Visual C++

  1. //////////////////////////////////////////////////////////////
  2. //  Source Code WriteDir() //
  3. //  Written by Brad Guttilla //
  4. //  BrickWall Software //
  5. //  PO Box 2438 //
  6. //  La Mesa CA 91943 //
  7. // //
  8. //  http://members.home.net/brickwall //
  9. // //
  10. //  Contributed to www.codeguru.com //
  11. // //
  12. //  Feel Free to use as you wish //
  13. // //
  14. //////////////////////////////////////////////////////////////
  15. #include "stdafx.h"
  16. #include "WriteDir.h"
  17. BOOL WriteDirectory(CString dd)
  18. {
  19. HANDLE fFile; // File Handle
  20. WIN32_FIND_DATA fileinfo; // File Information Structure
  21. CStringArray m_arr; // CString Array to hold Directory Structures
  22. BOOL tt; // BOOL used to test if Create Directory was successful
  23. int x1 = 0; // Counter
  24. CString tem = ""; // Temporary CString Object
  25. // Before we go to a lot of work.  
  26. // Does the file exist
  27. fFile = FindFirstFile(dd,&fileinfo);
  28. // if the file exists and it is a directory
  29. if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
  30. {
  31. //  Directory Exists close file and return
  32. FindClose(fFile);
  33. return TRUE;
  34. }
  35. m_arr.RemoveAll(); // Not really necessary - Just habit
  36. for(x1=0;x1<dd.GetLength();x1++) // Parse the supplied CString Directory String
  37. {
  38. if(dd.GetAt(x1) != '\') // if the Charachter is not a  
  39. tem += dd.GetAt(x1); // else add character to Temp String
  40. else
  41. {
  42. m_arr.Add(tem); // if the Character is a  Add the Temp String to the CString Array
  43. tem += "\"; // Now add the  to the temp string
  44. }
  45. if(x1 == dd.GetLength()-1) // If we reached the end of the file add the remaining string
  46. m_arr.Add(tem);
  47. }
  48. // Close the file
  49. FindClose(fFile);
  50. // Now lets cycle through the String Array and create each directory in turn
  51. for(x1 = 1;x1<m_arr.GetSize();x1++)
  52. {
  53. tem = m_arr.GetAt(x1);
  54. tt = CreateDirectory(tem,NULL);
  55. // If the Directory exists it will return a false
  56. if(tt)
  57. SetFileAttributes(tem,FILE_ATTRIBUTE_NORMAL);
  58. // If we were successful we set the attributes to normal
  59. }
  60. m_arr.RemoveAll();
  61. //  Now lets see if the directory was successfully created
  62. fFile = FindFirstFile(dd,&fileinfo);
  63. // if the file exists and it is a directory
  64. if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
  65. {
  66. //  Directory Exists close file and return
  67. FindClose(fFile);
  68. return TRUE;
  69. }
  70. else
  71. {
  72. FindClose(fFile);
  73. return FALSE;
  74. }
  75. }