文件管理 - Ring3创建目录

Posted 生如逆旅 一苇以航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件管理 - Ring3创建目录相关的知识,希望对你有一定的参考价值。

 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\\World\Shit\0
46     {
47         if (*Travel == \\)
48         {
49             *Travel = \0;
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 }

 

以上是关于文件管理 - Ring3创建目录的主要内容,如果未能解决你的问题,请参考以下文章

Ring3创建事件Ring0设置事件

Ring3挂起进程,跟恢复进程.

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途

Ring0创建事件Ring3设置事件

C# 获得目录创建时间的源码片段

Android:使用支持片段管理器时复制片段