常用操作文件目录的函数

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. 知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装

    知识图谱(Knowledge Graph)- Neo4j 5.10.0 Docker 安装 知识图谱(Knowledge Graph)- Neo4j 5.10.0 CentOS 安装 https:// ...

  2. TCP 粘包

    TCP(Transmission Control Protocol,传输控制协议)是一种传输层协议. TCP提供了以下主要功能: 可靠性:TCP使用确认.重传和校验等机制来确保数据的可靠传输.它能够检 ...

  3. Strategy Pattern and Polymorphism —— Behavioral Class

    策略模式着重于封装和替换 不同的算法或行为,以便在运行时进行选择. Simple example - Computer and USB interface 现代人对计算机.USB接口还有各种设备之间的 ...

  4. 《SQLi-Labs》03. Less 11~15

    @ 目录 索引 Less-11 题解 原理 Less-12 题解 Less-13 题解 Less-14 题解 Less-15 题解 原理 sqli.开启新坑. 索引 Less-11:POST 回显注入 ...

  5. 简单描述下HTTP协议和TCP协议之间的关系以及TCP三次握手, 四次挥手

    TCP 三次握手, 四次挥手 TCP(传输控制协议)是一种用于在计算机网络中建立可靠连接的协议.TCP连接的建立和终止分别使用了"三次握手"和"四次挥手"的过程 ...

  6. 如何通过API接口获取京东的商品评论

    如果您想要获取京东的商品评论,可以通过API接口来实现.这篇文章会介绍如何使用京东API接口获取商品的评论数据. 首先,您需要到京东开放平台注册成为开发者,然后创建一个应用程序.通过这个应用程序,您可 ...

  7. torch-1 tensor & optim

    开个新坑, pytorch源码阅读-从python代码开始读起. torch/ 1.tensor.py 继承自torch._C._TensorBase , 包括各种操作,TODO:随后看cpp代码 _ ...

  8. Java下载多个网络文件并打成压缩包

    需求:浏览器访问后台的http地址后,后台将多个网络文件打成压缩包返回给浏览器,用户可以通过浏览器直接下载压缩包. 实现: 根据文件链接把文件下载下来并且转成字节码  ,代码: package com ...

  9. 在阿里云上部署Solid服务器

    1.Solid是什么? Solid(中文文档)是一个令人兴奋的新项目,由万维网发明者 Tim Berners-Lee 爵士在麻省理工学院启动. 该项目旨在从根本上改变 Web 应用程序的中心化趋势, ...

  10. Solution -「洛谷 P7395」「CoE-I 2021C」弹珠游戏

    Description Link. 游戏在 \(4\times4\) 的菱形棋盘上进行: 两名玩家轮流放置弹珠,可以在横向.纵向.\(45\) 度斜线.\(135\) 度斜线方向未放置弹珠的位置连续放 ...