常用操作文件目录的函数

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 文件夹操作函数整理的更多相关文章

  1. go语言中常用的文件和文件夹操作函数

    package main; import ( "os" "log" "time" "fmt" ) //一些常用的文件操作 ...

  2. delphi 文件夹操作

    文件的拖放和打开拖拽 user shellapi type TForm1 = class(TForm) ListView1: TListView; procedure FormCreate(Sende ...

  3. PHP 文件夹操作「复制、删除、查看大小」迭代实现

    "既然递归能很好的解决,为什么还要用迭代呢"?主要的原因还是效率问题-- 递归的概念是函数调用自身,把一个复杂的问题分解成与其相似的多个子问题来解决,可以极大的减少代码量,使得程序 ...

  4. PHP 文件夹操作「复制、删除、查看大小」递归实现

    PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...

  5. python文件、文件夹操作OS模块

    转自:python文件.文件夹操作OS模块   '''一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: ...

  6. PHP 文件夹操作「复制、删除、查看大小、重命名」递归实现

    PHP虽然提供了 filesize.copy.unlink 等文件操作的函数,但是没有提供 dirsize.copydir.rmdirs 等文件夹操作的函数(rmdir也只能删除空目录).所以只能手动 ...

  7. PHP作用域和文件夹操作

    1.作用域      1.1变量作用域      1.全局变量:在函数外面       2.局部变量:在函数里面,默认情况下,函数内部是不会访问函数外部的变量       3.超全局变量:可以在函数内 ...

  8. PHP 文件和文件夹操作

    文件夹操作 创建文件夹 mkdir(名称,权限,递归创建):创建文件 例如: #创建文件夹 mkdir('./aa') # 创建 aa 文件夹 mkdir('./aa/bb') # 在 aa 目录下创 ...

  9. [No000083]文件与文件夹操作

    #region Folder option 文件夹操作 /// <summary> /// 指定目录是否存在 /// </summary> /// <param name ...

  10. .Net文件*夹*操作

    一.文件夹操作 Directory类,DirectoryInfo类.使用using System.IO命名空间 (一)创建文件夹 方法一: private string path = @"F ...

随机推荐

  1. [ABC305D] Sleep Log题解

    题目大意 给 \(N\) 个时刻: 当 \(i\) 为奇数时,\(A_i\) 表示刚刚起床的时刻. 当 \(i\) 为偶数时,\(A_i\) 表示开始睡觉的时刻. 有 \(Q\) 次询问,每次求在 \ ...

  2. 如何基于 Kubernetes 实现优质开发者平台体验?

    内部开发者平台(或 IDP)是使开发团队能够更快.更轻松.更一致地交付应用程序的基础设施.Kubernetes 本身是一个功能强大的平台,但它引入了太多复杂性和功能,因此不能简单地将其作为 IDP 交 ...

  3. ChatGPT大师班 从入门到精通 视频教程 完整版

    本内容收集于:AIGC从入门到精通教程汇总 课程截图 课程目录 01.先导课:工具篇----ChatGPT平替解决方案及汉化教程.mp4 02.第1课:AIGC时代的到来.mp4 03.第2课:认识C ...

  4. 一款国产开源 Web 防火墙神器!

    随着开源 Web 框架和各种建站工具的兴起,搭建网站已经是一件成本非常低的事情,但是网站的安全性很少有人关注,以至于 WAF 这个品类也鲜为人知. 一.WAF 是什么? WAF 是 Web 应用防火墙 ...

  5. 如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考

    大家好,我是来自 BOSS直聘的赵俊南,主要负责安全方面的图存储相关工作.作为一个从 v1.x 用到 v3.x 版本的忠实用户,在见证 NebulaGraph 发展的同时,也和它一起成长. BOSS直 ...

  6. WPF开发必备

    类库 1.XamlFlair The goal of the XamlFlair library is to ease the implementation of common animations ...

  7. Llama2-Chinese项目:3.2-LoRA微调和模型量化

      提供LoRA微调和全量参数微调代码,训练数据为data/train_sft.csv,验证数据为data/dev_sft.csv,数据格式为"<s>Human: "+ ...

  8. Python比较字符串格式类型时间大小

    已知的格式是 06/24/2021 15:47:01.491 时间比较的思路是,把数据转换成时间戳比较: 第一步是把 06/24/2021 15:47:01.491 格式转换称 2021-06-24 ...

  9. Django框架项目之上线——docker、部署上线

    文章目录 Docker CentOS安装Docker 设置管理Docker的仓库 安装Docker Engine-Community Docker基础命令 开启关闭 镜像操作 容器操作 Docker安 ...

  10. WPF 中引入依赖注入(.NET 通用主机)

    WPF 中引入依赖注入(.NET 通用主机) 在网上看到的文章都是通过 App.cs 中修改配置进行的,这样侵入性很高而且服务主机是通过 App 启动时加载的而不是服务主机加载的 App 有一点违反原 ...