• 文件管理


     1 //多字符集
     2 
     3 #include "stdafx.h"
     4 #include <Windows.h>
     5 #include <iostream>
     6 
     7 using namespace std;
     8 
     9 BOOL MakeSureDirectoryPathExists(char* DirectoryFullPath);
    10 
    11 int main()
    12 {
    13     char* DirectoryFullPath = "E:\这个是我们自己创建的多层目录\DemoSucess\";//要在最后加上那个双斜杠,否则无法创建最后一层
    14     MakeSureDirectoryPathExists(DirectoryFullPath);
    15     return 0;
    16 }
    17 
    18 BOOL MakeSureDirectoryPathExists(char* DirectoryFullPath)
    19 {
    20     char* Travel     = NULL;
    21     char* BufferData = NULL;
    22     DWORD DirectoryAttributes;
    23     
    24     BufferData = (char*)malloc(sizeof(char)*(strlen(DirectoryFullPath) + 1));
    25 
    26     if (BufferData == NULL)
    27     {
    28         return FALSE;
    29     }
    30 
    31     strcpy(BufferData, DirectoryFullPath);
    32 
    33     Travel = BufferData;
    34 
    35 
    36     if (*(Travel + 1) == ':')
    37     {
    38         Travel++;
    39         Travel++;
    40         if (*Travel && (*Travel == '\'))
    41         {
    42             Travel++;
    43         }
    44     }
    45     while (*Travel)           //D:Hello\WorldShit
    46     {
    47         if (*Travel == '\')
    48         {
    49             *Travel = '';
    50             DirectoryAttributes = GetFileAttributes(BufferData);   //查看是否是否目录  目录存在吗//这里注意单双字使用多字符集
    51             if (DirectoryAttributes == 0xffffffff)
    52             {
    53                 if (!CreateDirectory(BufferData, NULL))
    54                 {
    55                     if (GetLastError() != ERROR_ALREADY_EXISTS)
    56                     {
    57                         free(BufferData);
    58                         return FALSE;
    59                     }
    60                 }
    61             }
    62             else
    63             {
    64                 if ((DirectoryAttributes & FILE_ATTRIBUTE_DIRECTORY) != FILE_ATTRIBUTE_DIRECTORY)
    65                 {
    66                     free(BufferData);
    67                     BufferData = NULL;
    68                     return FALSE;
    69                 }
    70             }
    71 
    72             *Travel = '\';
    73         }
    74 
    75         Travel = CharNext(Travel);
    76     }
    77     
    78     cout << "创建多层目录成功!" << endl;
    79     return TRUE;
    80 }
  • 相关阅读:
    Halcon一日一练:图像分割之基本概念
    Halcon一日一练:创建AOI
    Halcon一日一练:获取图像属性
    Halcon一日一练:创建三通道图像
    Halcon一日一练:Halcon异常判断方法
    Java基础_类的加载机制和反射
    Java基础_死锁、线程组、定时器Timer
    Java基础_通过模拟售票情景解决线程不安全问题
    Java基础_线程的使用及创建线程的三种方法
    HTML/HTML5 知识点思维导图
  • 原文地址:https://www.cnblogs.com/1228073191Blog/p/7531318.html
Copyright © 2020-2023  润新知