CreateDirectory GetCurrentDirectory 和SetCurrentDirectory
文章目录
- CreateDirectory
- 函数功能
- 函数声明
- 第一个参数(第一种情况绝对路径)
- 第一个参数(第二种情况当前目录)
- 第二个参数
- 返回值
- 注意:
- 代码实现
- 绝对路径
- 当前目录
- GetCurrentDirectory
- 函数功能
- 函数声明
- 第一个参数
- 第二个参数
- 返回值
- 代码实现
- SetCurrentDirectory
- 函数功能
- 函数声明
- 第一个参数:
- 返回值:
- 注意:
- 代码实现
- `CreateDirectory`和`SetCurrentDirectory`相结合使用(打了一套组合拳):实现代码下:
CreateDirectory
函数功能
创建一个新目录
函数声明
BOOL CreateDirectory(LPCTSTR lpPathName,LPSECURITY_ATTRIBUTES lpSecurityAttributes);
第一个参数(第一种情况绝对路径)
lpNewDirectory
String,新目录的名字。举例:LPCSTR str = "c:\\TEST"
第一个参数(第二种情况当前目录)
lpNewDirectory
String,新目录的名字。举例:LPCSTR str = "TEST"
第二个参数
lpSecurityAttributes
SECURITY_ATTRIBUTES,这个结构定义了目录的安全特性——如果操作系统支持的话,安全属性,一般设置为NULL
即可
返回值
Long,如果正确创建,返回值为1,如果没有正常创建文件夹,则返回0。会设置GetLastError
注意:
特别的:该函数每次调用时都只能创建一级文件夹,即文件夹中不能再包含子文件夹。
当希望创建含有子文件夹的文件夹时,可以先使用该函数创建一级文件夹
,然后再使用该函数在一级文件夹下创建子文件夹
。如:
希望创建:d:\\TEST\\temp
则:
LPCSTR str = "c:\\TEST";CreateDirectory(str, NULL);LPCSTR std = "c:\\TEST\\temp";CreateDirectory(std, NULL);
代码实现
绝对路径
LPTSTR szDirPath = LPTSTR("c:\\dog");if (!CreateDirectory(szDirPath, NULL)) {LPCSTR a = "创建失败";LPCSTR b = "再接再厉";MessageBox(NULL,a,b,MB_OK);return 0;}LPCSTR a = "创建成功";LPCSTR b = "厉害";MessageBox(NULL, a, b, MB_OK);LPCSTR str = "c:\\TEST";CreateDirectory(str, NULL);LPCSTR std = "c:\\TEST\\temp";CreateDirectory(std, NULL);
当前目录
LPCSTR str1 = "TEST";CreateDirectory(str1, NULL);if (!CreateDirectory(szDirPath, NULL)) {LPCSTR a = "创建失败";LPCSTR b = "再接再厉";MessageBox(NULL, a, b, MB_OK);return 0;}LPCSTR a = "在当前目录创建成功";LPCSTR b = "厉害";MessageBox(NULL, a, b, MB_OK);
GetCurrentDirectory
函数功能
在一个缓冲区中装载当前目录
函数声明
因为此时我是用的是多字节字符集,所以 GetCurrentDirectory
自动转变为 GetCurrentDirectoryA
GetCurrentDirectoryA(_In_ DWORD nBufferLength,_Out_writes_to_opt_(nBufferLength,return + 1) LPSTR lpBuffer);
第一个参数
nBufferLength Long
,lpBuffer
缓冲区的长度
第二个参数
lpBuffer String
,指定一个预定义字串,用于装载当前目录
返回值
Long
,装载到lpBuffer
的字节数。如nBufferLength
的长度不够,不足以容纳目录,则返回值是必要的缓冲区长度(要求至少这个长度),其中包括空中止字符。零表示失败。会设置GetLastError
代码实现
TCHAR szCurrentDirectory[MAX_PATH];DWORD dwCurDirPathlen;dwCurDirPathlen=GetCurrentDirectory(MAX_PATH, szCurrentDirectory);printf("%d", dwCurDirPathlen);if (dwCurDirPathlen == 0) {LPCSTR a = "获取当前目录失败";LPCSTR b = "再接再厉";MessageBox(NULL, a, b, MB_OK);return 0;}LPCSTR a = "获取当前目录成功";LPCSTR b = "厉害";MessageBox(NULL, szCurrentDirectory, b, MB_OK);
SetCurrentDirectory
函数功能
在开发软件里,常常碰到要读取当前目录下的配置参数文件,或者打开当前目录下别的程序来运行,那么就需要获取当前进程的目录位置,这就需要使用函数GetCurrentDirectory
获取当前进程所有在的目录。同时也可以使用setcurrentdirectory
函数来改变进程的当前目录。
函数声明
SetCurrentDirectoryA(_In_ LPCSTR lpPathName);
第一个参数:
LPCTSTR lpPathName
程序的目录设置到地址
返回值:
此函数的返回值类型为Long,非零表示成功,零表示失败。会设置GetLastError
注意:
应用程序终止时,工作目录被还原为其原始位置(从其开始进程的目录)。
允许 path 参数指定相对或绝对路径信息。 相对路径信息被解释为相对于当前工作目录。 若要获取当前工作目录,请参见 GetCurrentDirectory
。
尾随空格从 path 参数的结尾。CONFIG 目录中的已取消。
path 参数不区分大小写。
如果您要将目录设置为装有可移动媒体的驱动器(例如对于软盘驱动器,为“A:”,对于 CD-ROM 驱动器,为“E:”),则可以通过使用 IsReady
属性确定该驱动器是否已就绪。
代码实现
LPCSTR a = "c:\\";if (!SetCurrentDirectory(a)) {LPCSTR a = "设置当前目录失败";LPCSTR b = "再接再厉";MessageBox(NULL, a, b, MB_OK);}LPCSTR a1 = "设置当前目录成功";LPCSTR b = "厉害";MessageBox(NULL, a1, b, MB_OK);
CreateDirectory
和SetCurrentDirectory
相结合使用(打了一套组合拳):实现代码下:
LPCSTR CurrentDirectory = "c:\\";if (!SetCurrentDirectory(CurrentDirectory)) {LPCSTR a = "设置当前目录失败";LPCSTR b = "再接再厉";MessageBox(NULL, a, b, MB_OK);}LPCSTR CurrentDirectory1 = "设置当前目录成功";LPCSTR CurrentDirectoryTable = "厉害";MessageBox(NULL, CurrentDirectory1, CurrentDirectoryTable, MB_OK);LPCSTR str1 = "TEST";if (!CreateDirectory(str1, NULL)) {LPCSTR a = "创建失败";LPCSTR b = "再接再厉";MessageBox(NULL, a, b, MB_OK);return 0;}LPCSTR createDirectory = "在当前目录创建成功";LPCSTR b = "厉害";MessageBox(NULL, createDirectory, b, MB_OK);
备注:
2021年坚持学写博客第10天(学习两个windows API) 寻梦SS
明日目标:
windows核心编程API函数
CreateDirectory GetCurrentDirectory 和SetCurrentDirectory相关推荐
- GetCurrentDirectory和SetCurrentDirectory函数
转自:http://blog.csdn.net/wishfly/article/details/2906187 在开发软件里,常常碰到要读取当前目录下的配置参数文件,或者打开当前目录下别的程序来运行, ...
- 路径,文件,目录,I/O常见操作汇总
摘要: 文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案 ...
- 《精通Windows API-函数、接口、编程实例》——第4章文件系统
第4章文件系统 4.2 磁盘和驱动器管理 文件系统的基本概念: 包括磁盘分区,卷,目录,文件对象,文件句柄,文件映射 1.磁盘分区: 物理磁盘,逻辑磁盘 2.卷: 也称逻辑驱动器,是NTFS,FAT3 ...
- C#文件目录IO常见操作汇总
http://www.kuaipan.cn/file/id_14185671388311824.html http://www.kuaipan.cn/file/id_14185671388311942 ...
- Win32汇编——文件操作
一.创建和读写文件 打开.创建文件:CreateFile (文件名需全路径) 关闭: CloseHandle 调整文件指针: SetFilePointer 无GetFilePointer函数,可通过 ...
- Unity中用递归删除空文件夹和文件夹下面的子文件,meta文件保留和IO的一些操作总结
/*----------------------------------------------------------------Created by 王银文件名: FilesTools创建时间: ...
- Unity3D心得分享
本篇文章的内容以各种tips为主,不间断更新 2019/05/10 最近更新: 使用Instantiate初始化参数去实例对象 Unity DEMO学习 ======================= ...
- C# 获取当前路径方法
//获取包含清单的已加载文件的路径或 UNC 位置. public static string sApplicationPath = Assembly.GetExecutingAssembly ( ) ...
- C#路径/文件/目录/I/O常见操作汇总(一)
文件操作是程序中非常基础和重要的内容,而路径.文件.目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题, 尽量提供一些解决方案,即使没有你想要的答案,也希望能提 ...
最新文章
- 启动springboot报错Error creating bean with name 'dataSource' defined in class path resource
- AS3 CookBook学习整理(十七)
- CUDA性能优化----线程配置
- 笔记本安装win7和arch linux双系统+xfce4桌面
- LeetCode Online Judge 题目C# 练习 - Search in Rotated Sorted Array II
- x86保护模式 任务状态段和控制门
- Learun,已开源,一个.net web快速开放工具
- 微信小程序的所有scene场景值 2020-10-21
- matlab横纵坐标程序,matlab横纵坐标标注
- GSM/GPRS之一-GSM基础知识
- selenium元素模糊定位xpath contains、starts-with和ends-with
- python 批量处理图片
- [SpringBoot]使用token 短信验证码 Redis的功能实现基本的登陆注册操作(含Redis token 验证码如何配置)
- Android概述与发展
- 一口气说出前后端 10 种 鉴权方案!!!
- 小程序如何转App?
- [附源码]计算机毕业设计Python防疫物资捐赠(程序+源码+LW文档)
- GPS北斗共视授时中的多径效应分析
- 学计算机手机必备软件,精选推荐:手机电脑里的11类值得分享的“神器”,囊括你工作学习以及生活的方方面面...
- 天龙八部TLBB系列 - 如何让宠物学习十二满技能
热门文章
- 成功解决AttributeError: module ‘seaborn‘ has no attribute ‘lvplot‘
- 成功解决ModuleNotFoundError: No module named ‘torch._C‘
- ML之LSOLS:LSOLS算法的简介、论文、算法的改进(最佳子集选择OFSS法、前向逐步回归FSR法)、代码实现等详细攻略
- Matlab:利用Matlab实现布朗运动模拟
- 自动化机器学习(三)神经网络架构搜索综述(NAS)简述
- Jupyter notebook 编写scala与spark
- Codeforces - 662A 思路巧妙的异或
- Spring基于Setter函数的依赖注入(DI)
- 如何控制并发和控制死锁(内含pb的处理要点)
- 指针01 - 零基础入门学习C语言41