win32 API 文件夹操作函数整理
常用操作文件目录的函数
1. CreateDirectory 创建文件夹
原型:
BOOL CreateDirectory(
LPCTSTR lpPathName,
LPSECURITY_ATTRIBUTES lpSecurityAttributes
);
参数说明:
lpPathName 要创建的文件夹名称
lpSecurityAttributes 忽略为NULL
返回:
成功返回非零,失败返回零
实例:
实例:
CString str="D:\\一级文件夹";
CreteDirectory(str,NULL);
str+="\\二级文件夹";
CreateDirectory(str,NULL);
2.RemoveDirectory 删除文件夹
原型:
BOOL RemoveDirectory(
LPCTSTR lpPathName //要删除的文件夹名称
);
返回:
成功返回非零,失败返回零
3. PathIsDirectory 判断文件夹是否存在
原型:
BOOL PathIsDirectory(
LPCTSTR lpPathName //文件夹名称
);
这个api要包含头文件(shlwapi.h)和库文件(shlwapi.lib)
4. 自己通过文件属性来判断文件夹是否存在
bool IsExistingDirectroy(const wchar_t* path)
{
DWORD fa=0;
::SetLastError(ERROR_SUCCESS);
//获取文件属性
fa=::GetFileAttributesW(path);
if(fa==INVALID_FILE_ATTRIBUTES)
{
//无法获取文件属性,可能是不存在
//检查错误代码
DWORD error=::GetLastError();
return error != ERROR_PATH_NOT_FOUND &&
error!=ERROR_FILE_NOT_FOUND;
} return (fa & FILE_ATTRIBUTES_DIRECTORY) !=0;
}
5. GetFullPathName 获得文件或文件夹的全路径
原型:
DWORD GetFullPathNameW(
[in] LPCWSTR lpFileName, //文件/文件夹名称
[in] DWORD nBufferLength, //缓存大小
[out] LPWSTR lpBuffer, //缓存指针
[out] LPWSTR *lpFilePart //NULL
); 返回值:
成功返回字符串长度,
失败返回0;
实例:
实例:
WIN32_FIND_DATA wfd;
HANDLE hFile = FindFirstFile(TEXT("*.*"), &wfd); if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{ //是文件夹
hItem = TreeView_InsertItemEx(hTree, wfd.cFileName, hParent, 1, 2); //获取文件夹的完全路径名称
TCHAR pullPath[MAX_PATH] = { 0 };
GetFullPathName(wfd.cFileName, MAX_PATH, pullPath, 0); TreeView_LoadDir(hTree, wfd.cFileName, hItem);
SetCurrentDirectory(L".."); }
else {
//获取文件的完全路径名称
TCHAR pullPath[MAX_PATH] = { 0 };
GetFullPathName(wfd.cFileName,MAX_PATH, pullPath, 0); hItem = TreeView_InsertItemEx(hTree, wfd.cFileName, hParent, 0, 0);
}
win32 API 文件夹操作函数整理的更多相关文章
- go语言中常用的文件和文件夹操作函数
package main; import ( "os" "log" "time" "fmt" ) //一些常用的文件操作 ...
- delphi 文件夹操作
文件的拖放和打开拖拽 user shellapi type TForm1 = class(TForm) ListView1: TListView; procedure FormCreate(Sende ...
- PHP 文件夹操作「复制、删除、查看大小」迭代实现
"既然递归能很好的解决,为什么还要用迭代呢"?主要的原因还是效率问题-- 递归的概念是函数调用自身,把一个复杂的问题分解成与其相似的多个子问题来解决,可以极大的减少代码量,使得程序 ...
- PHP 文件夹操作「复制、删除、查看大小」递归实现
PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...
- python文件、文件夹操作OS模块
转自:python文件.文件夹操作OS模块 '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: ...
- PHP 文件夹操作「复制、删除、查看大小、重命名」递归实现
PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...
- PHP作用域和文件夹操作
1.作用域 1.1变量作用域 1.全局变量:在函数外面 2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量 3.超全局变量:可以在函数内 ...
- PHP 文件和文件夹操作
文件夹操作 创建文件夹 mkdir(名称,权限,递归创建):创建文件 例如: #创建文件夹 mkdir('./aa') # 创建 aa 文件夹 mkdir('./aa/bb') # 在 aa 目录下创 ...
- [No000083]文件与文件夹操作
#region Folder option 文件夹操作 /// <summary> /// 指定目录是否存在 /// </summary> /// <param name ...
- .Net文件*夹*操作
一.文件夹操作 Directory类,DirectoryInfo类.使用using System.IO命名空间 (一)创建文件夹 方法一: private string path = @"F ...
随机推荐
- 调试linux内核(1): 环境准备和原理介绍
开篇 现在流行的开源项目经历了长时间的开发, 积累了大量的代码, 想要一行一行地阅读代码去学习开源项目, 需要的时间成本是巨大的. 所以, 我们也需要用一种高效的方式去"阅读"代码 ...
- VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器
VMware中的虚拟机Debian10的服务器配置,使主机(win10)能够通过本地域名(如www.xxx.com)访问该服务器 安装过程 下载debian-10.13.0-amd64-DVD-1.i ...
- 【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
问题描述 在App Service for linux上创建一个PHP应用,通过 phpinfo() 查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size 大小为0. 那么,在 ...
- CF1787E The Harmonization of XOR 题解
CF1787E The Harmonization of XOR 题目大意 给定 \(n\) 个数 \([1, 2, 3, \cdots, n]\) 和两个正整数 \(k\) 和 \(x\). 将这些 ...
- Android13深入了解 Android 小窗口模式和窗口类型
Android13深入了解 Android 小窗口模式和窗口类型 小窗模式,作为一种在移动设备上的多任务处理方式,为用户带来了便捷和高效的体验,尤其在一些特定场景下,其价值愈发凸显.以下是为什么需要小 ...
- API接口获取快手商品详情(封装代码)
快手是中国最大的短视频平台之一,也是许多电商企业进行推广的重要渠道.为了更好地了解快手的商品信息,我们可以通过API接口来获取商品详情. 首先,我们需要了解快手API接口和相应的文档 接下来,我们需要 ...
- Python脚本批量造数据、跑定时任务协助测试
批量造数据 连接Mysql的信息 1 import pymysql 2 # 数据库连接信息 3 # 多个库要有多个conn 4 conn = pymysql.connect( 5 host=" ...
- LeetCode 周赛上分之旅 #45 精妙的 O(lgn) 扫描算法与树上 DP 问题
️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...
- oracle clob字段信息读取,不限字符长度
在项目中,经常需要在plsql中查询clob的内容,提供以下两种方法: 第一种,oracle常规函数,限制文本在4000以内 select dbms_lob.substr(sql_text) from ...
- Django——后台添加的用户密码错误
django项目中,当我们创建了user模型类,并生成了超级管理员,之后我们进入到admin后台页面中,添加一个用户,再去login页面登陆时,会提示我们 用户名或密码错误. 这时,我们第一时间会想到 ...