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. 总结

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

  • 相关阅读:
    OSX安装nginx和rtmp模块(rtmp直播服务器搭建)
    用runtime来重写Coder和deCode方法 归档解档的时候使用
    Homebrew安装卸载
    Cannot create a new pixel buffer adaptor with an asset writer input that has already started writing'
    OSX下面用ffmpeg抓取桌面以及摄像头推流进行直播
    让nginx支持HLS
    iOS 字典转json字符串
    iOS 七牛多张图片上传
    iOS9UICollectionView自定义布局modifying attributes returned by UICollectionViewFlowLayout without copying them
    Xcode6 iOS7模拟器和Xcode7 iOS8模拟器离线下载
  • 原文地址:https://www.cnblogs.com/zaishuiyifang006/p/CreateFile_CreateDirectory.html
Copyright © 2011-2022 走看看