C++建立多级文件目录

来源:互联网 发布:全世界失眠 知乎 编辑:程序博客网 时间:2024/05/17 18:46

 最近在学习写文件的备份与还原,要用到建立文件目录的知识,通过讨教与查阅资料,终于写了一个比较完善的建立多级文件目录的程序,

程序代码如下,分享给正在学习C++的网友们。

#include <iostream.h>
#include <afx.h>
#include <windows.h>
BOOL WriteDirectory(CString dd);
void main()  //涛涛的测试函数
{
         CString ss="D://11111//test//test//test";     //主函数用来测试建立目录是否成功
         WriteDirectory(ss);
}

BOOL WriteDirectory(CString dd)
{
          HANDLE fFile;
          WIN32_FIND_DATA fileinfo;
          CStringArray m_arr;
          int tt;
          int x1=0;
          CString temp="";
          fFile = FindFirstFile(dd,&fileinfo);

//检验路径是否存在
          if (fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
           {
                      FindClose(fFile);
                      return TRUE;
           }
           m_arr.RemoveAll();

//分开字符串,报每个目录都保存于数组中   http://blog.csdn.net/tsyj810883979/archive/2009/11/17/4824204.aspx
           for (x1=0;x1<dd.GetLength();x1++)
           {
                      if (dd.GetAt(x1)!='//')
                      {
                                 temp+=dd.GetAt(x1);
                      }
                      else
                      {
                                 m_arr.Add(temp);
                                 temp+="//";
                      }
                      if (x1==dd.GetLength()-1)
                      {
                                 m_arr.Add(temp);
                      }
                      FindClose(fFile);
           }

//建立分级的路径结构   http://blog.csdn.net/tsyj810883979/archive/2009/11/17/4824204.aspx
           for (x1=1;x1<m_arr.GetSize();x1++)
           {
                      temp=m_arr.GetAt(x1);
                      tt = CreateDirectory(temp,NULL);
                      if (tt)
                      {
                                 SetFileAttributes(temp,FILE_ATTRIBUTE_NORMAL);
                      }
           }

//检验建立是否成功

            m_arr.RemoveAll();

            if (fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
           {
                      FindClose(fFile);
                      return TRUE;
           }
            else

           {
                      FindClose(fFile);
                      return FALSE;
           }
}

 

我现在也是个初学者,对于许多问题还是不明白,希望各位网友可以给我分享一些自己学习中的收获,在此深表谢意。