`

封装的createDirectories方法

    博客分类:
  • C++
阅读更多
#include <io.h>
#include <afx.h>
BOOL fnCreateDirectory(CString csFilePath, CString &csErr)
{
if(csFilePath.IsEmpty())
{
csErr.Format("directory argument is empty\r\n");
return FALSE;
}

if(-1 != _access(csFilePath, 0))
{
return TRUE;
}

int pos = 0;
CString csLeft;
CString csRight;
CStringArray casPaths;

csFilePath.Replace("/", "\\");
while(true)
{
pos = csFilePath.ReverseFind('\\');
if(-1 == pos)
{
break;
}

csLeft = csFilePath.Left(pos);
csRight = csFilePath.Right((csFilePath.GetLength() - pos -1));

if(!csRight.IsEmpty())
{
casPaths.Add(csRight);
}

if(-1 != _access(csLeft, 0))
{
break;
}
csFilePath = csLeft;
}

CString csTempPath = csLeft;
int size = casPaths.GetUpperBound();
CString csTem;
for( ; size>-1 ;size--)
{
if(casPaths.GetAt(size).IsEmpty())
{
continue;
}
csTem = '/' + casPaths.GetAt(size);
csTempPath = csTempPath + csTem;

if(0 == CreateDirectory(csTempPath, NULL))
{
csErr.Format("create directory %s failed\r\n", csTempPath);
return FALSE;
}
csErr.Format("create directory %s failed\r\n", csTempPath);
}
return TRUE;
}
分享到:
评论

相关推荐

    C++文件读写简单封装案例

    如果使用该库,可以使用`std::filesystem::create_directories()`函数创建多级目录。如果编译器不支持`&lt;filesystem&gt;`,可以使用旧的`&lt;dirent.h&gt;`库或系统调用如`mkdir()`。 2. **自定义结构体的二进制文件读写**:...

    HTML5 Filesystem API 封装包 filer.js

    例如,使用`createFile()`或`createDirectory()`方法,只需提供文件名或目录名,即可创建新元素。 2. **读取和写入文件**:库提供了`readAsText()`、`readAsDataURL()`等方法读取文件内容,以及`write()`、`...

    C#封装的常用文件操作类实例

    - **创建目录** (`CreateDirectory`): 使用`Directory.CreateDirectory`方法创建新的目录。 - **递归删除文件及目录** (`RecursivelyDelete`): 遍历目录结构并使用`Directory.Delete`递归删除文件和子目录。 - **列...

    obs日志模块,自己封装的类

    throw "Failed to create required user directories"; create_log_file(logFile, logPath); 注意是obs的日志模块,自己封装的。有想法的可以去看obs源码:主要在 obs-app.cpp和obs-app.hpp中体现的。 新增 如果...

    C# for循环建立多层文件夹源码 VS2008

    为了进一步提升代码的可读性和可维护性,你还可以考虑将文件夹创建逻辑封装到一个单独的方法中,如`CreateDirectories()`,然后在主程序中调用这个方法。这样,代码结构更加清晰,便于其他地方复用。 总的来说,...

    c++文件,文件夹操作简单包装类代码

    6. **文件遍历**:`listFiles()`和`listDirectories()`方法可以分别列出目录下的所有文件和子目录,这对于文件管理或搜索操作非常有用。 在实现这类封装时,通常会使用C++的RAII(Resource Acquisition Is ...

    java二维码代码

    Files.createDirectories(outputFilePath.getParent()); MatrixToImageWriter.writeToPath(bitMatrix, "PNG", outputFilePath); System.out.println("二维码已生成,路径:" + outputFilePath); } } ``` 在这...

    C#复制删除指定路径下的文件,操作

    当需要处理整个目录树时,可以使用`Directory.GetFiles`的重载版本,结合`SearchOption.AllDirectories`参数来获取所有子目录下的文件。 6. **文件和目录的权限**: 在进行复制和删除操作时,需要注意文件和目录...

    java制作二维码

    Files.createDirectories(Paths.get(outputFilePath).getParent()); ImageIO.write(image, "PNG", new File(outputFilePath)); System.out.println("二维码已生成,保存为:" + outputFilePath); } catch ...

    常用文件目录操作函数

    - **创建目录**:使用`std::filesystem::create_directory`或`create_directories`函数可以创建单个目录或多级目录。例如,`create_directories("path/to/directory")`会创建所有中间目录,如果它们尚不存在。 - *...

    C#中文件和目录相关操作 DirectoryInfo 类

    这些类封装了文件系统对象(文件或目录),并提供了多种方法来访问和修改它们的属性。下面将详细介绍这两个类的功能以及如何在C#中利用它们来进行文件系统的操作。 #### 1. 创建文件、目录或驱动器的实例 `...

    c#文件目录操作类(全,实用)

    - `Directory.GetFiles`配合`SearchOption.AllDirectories`可以递归获取目录下所有文件。 4. **重命名目录**: - `Directory.Move`: 实现目录的移动,实际上就是重命名。 在`FileDirectory.cs`这个文件中,可能...

    lmdb_c++使用代码

    例如,可以创建一个`LmdbWrapper`类,包含环境、事务、数据库等成员,并提供开始事务、写入、读取、提交等方法。 4. **写入图片**: 图片作为二进制数据,可以以字节串形式存入LMDB。首先,需要将图片转换为二进制...

    .net 文件处理帮助类总结大全

    在.NET框架中,C#语言提供了丰富的API来处理文件和文件夹操作,使得开发者...对于压缩包文件“DotNetFile”,其可能包含了一系列封装好的C#文件处理类,便于开发者在项目中直接调用,以实现更简洁、安全的文件操作。

    文件类操作总结

    `FileInfo`类封装了一个文件的信息,并提供了一些方法来管理文件: 1. **文件存在性检查** ```csharp FileInfo fileInfo = new FileInfo("1.txt"); if (fileInfo.Exists) { Console.WriteLine("File Exists!...

    基于ant.jar的文件压缩工具类

    throw new RuntimeException("Failed to create parent directories for " + entryDestination); } try (FileOutputStream fos = new FileOutputStream(entryDestination)) { byte[] bytes = new byte[1024]; ...

    程序可能用到的Jar文件

    在本篇文章中,我们将深入探讨JAR文件的用途、结构、创建方法以及如何在程序中使用它们。 1. **JAR文件的用途**: - **代码封装**:JAR文件将多个类文件打包在一起,便于管理和分发。 - **压缩**:JAR文件可以对...

    libmysql 5.0

    在Delphi中,我们可以通过设置项目属性,将头文件路径添加到“Include Directories”中,将库文件添加到“Library Path”。 接下来,我们需要创建一个接口来调用libmysql的函数。Delphi支持C语言风格的函数调用,...

    一个程序员的开发习惯

    - 需要注意的是,在实际应用中,根据文件大小选择合适的方法,例如当文件较大时使用 `TFileStream`,小文件或内存操作使用 `TMemoryStream` 更加高效。 #### 三、使用 TAction 提高开发效率 1. **TAction 的引入...

    采用Verilog HDL RTL 描述完成数字钟_v11

    在“Select Device”界面,根据具体使用的FPGA芯片系列、封装和速度等级进行搜索,以找到适合设计的硬件平台。例如,如果使用的是Basys3主板,那么应选择对应的Xilinx FPGA器件。 完成以上步骤后,设计的基本框架...

Global site tag (gtag.js) - Google Analytics