WIN32生成多级目录

CreateDirectoryW 只能生成一个文件夹,如果存在多级文件夹并且之前的文件夹不存在那么就会创建失败

如 目录 1\2\3   本意是创建文件夹3  但是如果 1 2 不存在那么就会 失败

解决方案之一是 通过递归方式来解决

 

#include<iostream>
#include<fstream>
#include"windows.h" 
#include "math.h" 
#include<vector>
#include <direct.h>  
using namespace std;
  
LPWSTR toUnicode11(const char* _str)
{
	LPWSTR _ret;
	int _len = strlen(_str) * 2;

	_ret = new WCHAR[_len];

	MultiByteToWideChar(CP_ACP, 0, _str, -1, _ret, _len);

	return _ret;
}

void  CreateDir(string dir)
{
	if (CreateDirectoryW(toUnicode11(dir.c_str()), 0) == 0)
	{
		//error
        if(string::npos == dir.find('\\'))return;
 
		int i = dir.size();
		for (; i >= 0; i--)
		{
			if (  dir[i]=='\\' )break;;

		}
		CreateDir(dir.substr(0,i ));
		CreateDirectoryW(toUnicode11(dir.c_str()), 0);
	}

}


int main()
{
    string path="12\\54\\63\\.324\\4";
	CreateDir(path);
 
	return 0;
}

 

转载于:https://my.oschina.net/kkkkkkkkkkkkk/blog/688519

你可以使用 Python 中的 python-docx 库来创建 Word 文档,并使用该库中的 Paragraph 对象来添加目录。下面是一个简单的示例代码,可以生成一个带有多级目录的 Word 文档: ```python import docx document = docx.Document() # 添加一级标题 document.add_heading('第一章', level=1) # 添加二级标题 document.add_heading('第一节', level=2) # 添加内容 p = document.add_paragraph('这是第一节的内容。') # 添加二级标题 document.add_heading('第二节', level=2) # 添加内容 p = document.add_paragraph('这是第二节的内容。') # 添加一级标题 document.add_heading('第二章', level=1) # 添加二级标题 document.add_heading('第一节', level=2) # 添加内容 p = document.add_paragraph('这是第一节的内容。') # 生成目录 document.add_page_break() document.add_heading('目录', level=1) document.add_paragraph(document.get_table_of_contents().text) # 保存文档 document.save('test.docx') ``` 在上面的代码中,我们首先创建了一个 Document 对象,并添加了一些标题和内容。然后,我们使用 `get_table_of_contents()` 方法来获取目录,并将其添加到文档末尾。 注意,目录会在文档的最后一页生成,因此我们需要在生成目录之前添加一个分页符(`document.add_page_break()`)以确保目录不被压缩在文档的最后一页。 运行上面的代码,将在当前目录生成一个名为 `test.docx` 的 Word 文档,其中包含了多级目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值