常用操作文件目录的函数

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. 一文详解TextBrewer

    本文分享自华为云社区<TextBrewer:融合并改进了NLP和CV中的多种知识蒸馏技术.提供便捷快速的知识蒸馏框架.提升模型的推理速度,减少内存占用>,作者:汀丶. TextBrewer ...

  2. 记一次 .NET某报关系统 非托管泄露分析

    一:背景 1. 讲故事 前段时间有位朋友找到我,说他的程序内存会出现暴涨,让我看下是怎么事情?而且还告诉我是在 Linux 环境下,说实话在Linux上分析.NET程序难度会很大,难度大的原因在于Li ...

  3. 三维模型OSGB格式轻量化纹理压缩关键技术分析

    三维模型OSGB格式轻量化纹理压缩关键技术分析 在三维模型应用中,纹理是一个十分重要的因素,可以使得模型更加真实.精细.随着移动设备和网络传输速度的限制,纹理数据也需要进行轻量化处理,而OSGB格式纹 ...

  4. ArcMap用一个面要素擦除另一个面要素的部分

      本文介绍在ArcMap软件中,基于擦除("Erase")工具,对矢量面要素的部分区域加以剔除的操作.   假如我们已知这样一个研究区域,其包括了陆地与水体两个部分.   与此同 ...

  5. 一台服务器上部署 Redis 伪集群

    哈喽大家好,我是咸鱼 今天这篇文章介绍如何在一台服务器(以 CentOS 7.9 为例)上通过 redis-trib.rb 工具搭建 Redis cluster (三主三从) redis-trib.r ...

  6. (2023.8.28)Hi铁布衫-CM Ver 0.001 - Cracked-writeup

    Hi铁布衫-CM Ver 0.001 WriteUp 本文作者:XDbgPYG(小吧唧) 发布时间:2023年8月28日 内容概要:Hi铁布衫-CM Ver 0.001 WriteUp 收集信息 有一 ...

  7. api接口怎么使用

    API接口的使用在当今的软件开发中非常普遍,它允许不同的应用程序或服务之间进行数据交换和功能交互.API接口使得开发人员能够将不同的系统或平台集成在一起,以实现更复杂的功能和应用.本文将详细介绍API ...

  8. Remix-Ethereum IDE连接本地详解

    Remix-Ethereum IDE连接本地 ​ 由于在学习和做项目的过程中,很多人用的都是网页版的Remix,而在网页中的代码是存储在缓存中的,在使用过程中容易丢失,所以将Remix与本地文件连接起 ...

  9. BZ全景可视化编辑器 (KRPano可视化编辑器, 无需编写任何代码制作全景漫游)

    软件简介 BZ全景编辑器是一款KRPano全景可视化编辑工具,下载安装即可使用,无需拥有任何KRPano代码基础,便可以制作生成精美的全景漫游作品. 官方网站: 点击进入官方网站 最新版软件下载地址: ...

  10. ElasticSearch系列——介绍、安装、插件介绍、安装ElasticSearch插件、安装Kibana、安装中文分词器、倒排索引、索引操作、映射管理

    文章目录 ElasticSearch之介绍 一 Elasticsearch产生背景 1.1 大规模数据如何检索 1.2 传统数据库的应对解决方案 1.3 非关系型数据库解决方案 1.4 内存数据库解决 ...