zoukankan      html  css  js  c++  java
  • WinCE应用程序开发创建文件或文件夹

    1. 功能:在WinCE平板电脑的ResidentFlash盘中指定任意的文件路径及文件名,实现检查文件是否存在,如果存在则返回TRUE,否则创建该文件。

    2. 实现

    2.1 平台: WinCE6.0 + VS2005

    2.2 实现方法:众所周知,创建文件用CreateFile()函数,创建文件夹用CreateDirectory()函数。但是如果指定的文件路径中有些文件夹本身就不存在,该如何处理,这篇随便给出了具体的实现过程。

    思路:先判断文件是否存在,如果存在,则直接返回;如果不存在,就依次判断路径中的各级文件夹是否存在,不存在则创建文件夹,直到最后创建文件。

    2.2.1 主函数

    BOOL CheckFileExistOrNot(CString strFilePath)

    {

      DWORD FileAttributeValue = ::GetFileAttributes(strFilePath);

      if(FileAttributeValue == 0xFFFFFFFF)
       {
          ::AfxMessageBox(TEXT("数据文件不存在"));

          // 创建文件前,先检查各级文件夹是否存在,若有某级文件夹不存在,则需先创建各级不存在的文件夹,然后再创建文件

        CAtlString strTemp = strFilePath;

        int curPos= 0;

        curPos = strTemp.ReverseFind('\\');

        strTemp = strTemp.Left(curPos+1);   // strTemp为去掉文件名的文件夹路径

        CString strTemp2;

        curPos = strTemp.Find('\\',1);

        while(curPos != -1)

        {

          strTemp2 = strTemp.Left(curPos);

          CheckFolderExistOrNot(strTemp2);

          curPos = strTemp.Find('\\',curPos+1);

        }

        // 检查完各级文件夹后,直接根据文件名创建文件

        HANDLE h_File = CreateFile(strFilePath, 

                      GENERIC_READ|GENERIC_WRITE, 

                      FILE_SHARE_READ|FILE_SHARE_WRITE,

                      NULL,

                      CREATE_NEW,

                      FILE_ATTRIBUTE_NORMAL,

                      NULL);

        CloseHandle(h_File);

         return FALSE;

      }

      else

      {

        return TRUE;

      }

    }

    2.2.2 子函数

    BOOL CheckFolderExistOrNot(CString strFolderPath)

    {

      DWORD FileAttributeValue = ::GetFileAttributes(strFolderPath);

      if(FileAttributeValue == 0xFFFFFFFF)

      {

        ::AfxMessageBox(TEXT("数据文件夹不存在"));

        CreateDirectory(strFolderPath,NULL);

        return FALSE;

      }

      else

      { 

         return TRUE;

      }

    }

     3. 测试用例

    3.1 测试文件夹是否存在

    CString strFolderPath = TEXT("\\ResidentFlash\\TestData1");

    BOOL m_bExist = CheckFolderExistOrNot(strFolderPath);

    如果文件夹不存在,则弹出如下提示:

    3.2 测试文件是否存在

    CString strFilePath = TEXT("\\ResidentFlash\\TestData\\ABC\\EDF\\1.bin");

    BOOL m_bFileExist = CheckFileExistOrNot(strFilePath);  

    4. 总结

    实践出真知,与诸位共勉。

  • 相关阅读:
    NGUI Sprite 和 Label 改变Layer 或父物体后 未更新深度问题
    unity销毁层级物体及 NGUI 深度理解总结
    unity 2d 和 NGUI layer
    关于NGUI与原生2D混用相互遮盖的问题心得
    CentOS7为firewalld添加开放端口及相关操作
    Python 操作redis有序集合(sorted set)
    win10下安装redis 服务
    python2/3中 将base64数据写成图片,并将图片数据转为16进制数据的方法、bytes/string的区别
    解决最小化安装Centos7后无法上网的问题,以及安装成功后的基本配置
    在mysql中使用group by和order by取每个分组中日期最大一行数据,亲测有效
  • 原文地址:https://www.cnblogs.com/zaishuiyifang006/p/CreateFile_CreateDirectory.html
Copyright © 2011-2022 走看看