VC 确保你要的路径创建成功
来源:互联网 发布:苹果cms怎么调播放器 编辑:程序博客网 时间:2024/06/05 05:01
在创建本地文件前都要先去检查文件夹路径是否存在,如果不存在则需要去创建它,假设已有路径 D:\work 。
1 保存一个文件到 D:\work\test 路径下
检查路径代码可以这么写:
CString strPathPre = _T("D:\\work\\test")if (!PathIsDirectory(strPathPre)){CreateDirectory(strPathPre, NULL);}
上述可以正常在 work 文件夹下再创建一个 test 文件夹。
2 保存一个文件到 D:\work\test2\sub 路径下
再按照1那样使用 CreateDirectory 则发现没有创建想要的路径,因为 CreateDirectory 只能一级一级目录的创建,要先创建 test2 再创建 sub ,想要一步创建则需要这么写:
#include "imagehlp.h"#pragma comment(lib,"imagehlp.lib")
CString strPathPre = _T("D:\\work\\test2\\sub")if (!PathIsDirectory(strPathPre)){MakeSureDirectoryPathExists((LPCSTR)CStringA(strPathPre));}上述可以一步创建 D:\work\test2\sub 路径
3 保存到预先不确定的路径下
有时候需要用户自定义文档保存路径,有可能是 D:\work\test,有可能是 D:\work\test2\sub。
就是并不能确定是否创建在已有的文件夹下,还是已有文件夹下的2级,3级甚至更多级目录下,如D:\work\test2\sub\123\fff\222\21212
之前以为一个MakeSureDirectoryPathExists 就可以搞定一切了,然而并不是。
经测试 MakeSureDirectoryPathExists 只是用于创建已有路径下的2级以上目录,像D:\work\test2\sub\123\fff\222\21212 这样,如果创建 D:\work 下的1级目录 D:\work\test 发现其并不能创建成功。仍需要 CreateDirectory 来创建,所以综上,为稳妥起见只有这样写了:
//CString strPathPre = _T("D:\\work\\test2\\sub")//strPathPre 由程序动态获取if (!PathIsDirectory(strPathPre)){CreateDirectory(strPathPre, NULL);MakeSureDirectoryPathExists((LPCSTR)CStringA(strPathPre));}经测试这样可以保证一定能创建成功了。
0 0
- VC 确保你要的路径创建成功
- 开发人员日常工作之二 - 确保你的代码在本地可以成功构建
- 确保你的phpMyAdmin安全
- 确保BPM成功的五个步骤
- VC++创建指定路径的一系列文件夹
- J2EE项目危机 -避免这10项J2EE危机来确保你的企业JAVA项目成功
- J2EE项目危机【翻译】 -避免这10项J2EE危机来确保你的企业JAVA项目成功
- 确保路径存在的函数 ensurePathExist
- 一个很棒的工具来确保成功的投机股票
- 外贸营销中确保交易成功的小贴士
- 外贸营销中确保交易成功的小贴士
- VC创建相对路径目录
- Sun ONE 创建域时,创建成功,却找不到域的路径
- 你的成功你决定
- 你的成功你决定
- 创建成功的工程
- 创建成功的工程
- VC的路径
- bzoj3314
- Java爬虫走过的坑:org.apache.http.impl.client.HttpClientBuilder.dnsResolver
- sklearn中kmeans聚类分析常用命令
- 棋盘问题 POJ
- iOS App 研发的最后冲刺:内测与部署
- VC 确保你要的路径创建成功
- Android中带分割线的GridView-MyGraidView
- JDK动态代理浅析
- 【POJ 2718 Smallest Difference】+ 排列组合
- Linux中的根目录下的各目录作用
- Jenkins + GitHub + fir-cli 一行命令从源码到fir.im
- jxl导入excel是报错
- AbstractQueuedSynchronizer详解(一)——分析ReentrantLock源码
- spring事物配置,声明式事务管理和基于@Transactional注解的使用