当前位置: 首页 > news >正文

告别VBA束缚,“平替”升级版——C语言文件夹操作

前期,我们讲了怎么用VBA语言操作文件夹 。用VBA自带的那些功能,就可以很方便地新建、移动、删除文件夹,处理日常办公的文件管理需求

不过,VBA是跟着Office软件才能用的,所以它的应用场景比较有限,基本上只能用在办公自动化处理上

而C语言就不一样了,它能够摆脱Windows和Office的限制,提供了很完善的文件夹操作系统接口,可以独立地实现各种文件夹的基本操作,能用在桌面程序、后台工具、自动化脚本等更多场景里, 不仅运行速度快,而且兼容性也很强

接下来,重点分享Windows操作系统下,文件夹新建、删除、移动这三个最常用的操作,并附上可执行代码,帮大家快速掌握C语言操作文件夹的基本方法,实现从VBA到C语言文件操作的技术过渡和场景拓展

文件夹创建操作:_mkdir函数

_mkdir 是Windows环境下专门用于创建单层文件夹的核心函数,功能对应VBA中 fso.CreateFolder 方法,能够在指定路径下新建一个空白文件夹。该函数隶属于头文件,是文件夹创建的基础核心接口

例如:

#include#include// 引入文件夹操作头文件
intmain{// 1. 相对路径创建文件夹(项目同级目录)char dir1 = "测试文件夹一";// 2. 绝对路径创建文件夹(指定磁盘目录)char dir2 = "D:/test/test1/测试文件夹二";
// 创建文件夹并判断结果if (_mkdir(dir1) == 0) {printf("文件夹【%s】创建成功!\n", dir1);} else {printf("文件夹【%s】创建失败!\n", dir1);}
if (_mkdir(dir2) == 0) {printf("文件夹【%s】创建成功!\n", dir2);} else {printf("文件夹【%s】创建失败!\n", dir2);}return0;}

以上代码实现相对路径与绝对路径两种方式的文件夹创建,同时增加结果判断逻辑

需要注意: 路径的书写格式

在VBA中通常使用反斜杠\作为路径分隔符,例如:

D:\test\test1\测试文件夹二

而在C语言中就要使用 双反斜杠\\或是单 正斜杠/

D:/test/test1/测试文件夹二

或者

D:\\test\\test1\\测试文件夹二

文件夹删除操作:_rmdir函数

_rmdir存在严格使用规则:仅能删除空文件夹。若文件夹内包含文件、子文件夹,函数会直接删除失败,这是系统底层的安全保护机制,避免误删批量数据

#include#include
intmain{// 待删除的文件夹路径char delDir = "D:\\test\\test1\\测试文件夹二";
if (_rmdir(delDir) == 0) {printf("文件夹【%s】删除成功!\n", delDir);} else {printf("文件夹【%s】删除失败!(文件夹非空或路径错误)\n", delDir);}return0;}

文件夹移动操作:系统接口实现

需要注意的是,C语言标准库中无专门的_mvdir移动函数,没有与_mkdir、_rmdir配套的原生文件夹移动接口,需借助头文件的system函数,调用系统命令实现文件夹移动,例如

#include#include// 引入system函数头文件
intmain{// 原文件夹路径、目标移动路径char oldPath = "测试文件夹一";char newPath = "D:\\test\\test1";
// 拼接Windows移动文件夹命令 movechar cmd[256];sprintf(cmd, "move \"%s\" \"%s\"", oldPath, newPath);
// 执行系统命令int res = system(cmd);if (res == 0) {printf("文件夹移动成功!\n");} else {printf("文件夹移动失败!\n");}return0;}

调用Windows原生move命令,支持空文件夹、非空文件夹的整体移动,能够完整保留文件夹内所有文件与子目录,完美弥补了C语言标准库无移动函数的短板,适配绝大多数基础场景

后续学习建议

把 _mkdir(创建文件夹)、_rmdir(删除文件夹)和 system 命令(移动文件夹)这三招学会、用好,你就掌握了C语言文件管理的核心基本功。有了这个基础,后面我们还会接着讲怎么拓展出更多高级功能,比如:一次性创建多级目录、递归删除非空文件夹、批量操作文件夹等等。到那时,就能实现比VBA强大得多的文件处理能力了

http://www.jsqmd.com/news/1258896/

相关文章:

  • 物联网AI边缘推理:从端侧模型部署到云边协同的架构复盘
  • ChatGPT在业财融合数字化转型中的应用与实践
  • 跨模态提示工程:上下文管理与多模态融合实战
  • 企业级对话系统开发:从MCP协议到SubAgent架构实践
  • OpenClaw:生产级AI代理系统架构设计与实践
  • AI辅助论文写作:3天高效完成学术论文的实践指南
  • Windows技术生态解析:从硬件兼容到AI集成的开发者实践指南
  • WorkshopDL:无需Steam账号,轻松下载创意工坊模组的终极方案
  • AI智能体开发实战:从语言模型到行动决策系统
  • Python 3.13反编译工具pycdc适配:字节码解析与逆向工程实践
  • 如何3分钟掌握AI提示词成本计算:TikTokenizer免费工具完全指南
  • C++集成faster-whisper:突破语音识别速度瓶颈的工程实践
  • 2026国内企业级AI Agent平台TOP10盘点:谁是最佳选择?
  • C++中英翻译器毕业设计:从数据结构到Qt GUI的完整实现指南
  • 御坂翻译器:打破语言壁垒,让Galgame和漫画阅读不再受限
  • RexUniNLU:零样本语义理解引擎快速部署指南
  • MSP430FR69xx低功耗设计实战:FRAM存储与七种睡眠模式解析
  • C++集成OpenAI API实战:从零构建高性能AI客户端
  • 深度伪造检测技术:多模态特征融合与实战应用
  • Java后端面试7天冲刺:从知识点记忆到问题解决能力
  • AI在数学定理证明中的突破与应用实践
  • 提示词工程:AI时代必备的核心技能与实战技巧
  • 特斯拉Dojo 3超级计算机:AI算力革命与自动驾驶训练优化
  • 基于Qt/C++的远程自动更新系统设计与实现
  • 大模型参数量与效果的关系及优化策略
  • 花了一晚上AI Coding, 在不熟悉的领域,使用AI帮同事解决了跳槽的小问题
  • ShaderGraph棋盘格节点深度解析:从原理到高级应用
  • MySQL主从同步原理与实战:从二进制日志到一主多从集群搭建
  • AI数字孪生在工业场景的应用:从3D建模到实时仿真的后端架构
  • 法律科技如何提升合同审查效率与风险识别