1、文件操作函数

      CreateFile();//创建或打开文件
      ReadFile();//从文件读
      WriteFile();//向文件写
      SetFilePointer();//设置文件指针
      CopyFile();//复制文件
      MoveFile();//移动或重命名文件
      DeleteFile();//删除文件

2、文件属性函数

      GetFileSize();//获取文件大小
      GetFileTime();//获取文件或目录的时间信息,如创建时间、最后修改时间、最后访问时间
      SetFileTime();//设置文件或目录的时间信息
      GetFileAttributesEx();//获取文件属性
      SetFileAttributes();//设置文件属性

3、文件的遍历和查找

      FindFirstFile();//查找第一个文件
      FindNextFile();//查找下一个文件
      FindClose();//关闭查找

4、目录操作函数

      CreateDirectory();//创建目录,只能创建一层目录
      RemoveDirectory();//删除一个空目录

5、判断文件或目录是否存在

以下转载自:http://liuzhigong.blog.163.com/blog/static/178272375201171594820785/

C中函数access()可以用来判断文件或文件夹是否存在。

函数原型: int access(const char *filename, int mode);

所属头文件:#include <io.h>

filename:可以填写文件夹路径或者文件路径

mode:0 (F_OK) 只判断是否存在

2 (R_OK) 判断写入权限

4 (W_OK) 判断读取权限

6 (X_OK) 判断执行权限

用于判断文件夹是否存在的时候,mode取0,判断文件是否存在的时候,mode可以取0、2、4、6。 若存在或者具有权限,返回值为0;不存在或者无权限,返回值为-1。

错误代码

EACCESS 参数pathname 所指定的文件不符合所要求测试的权限。

EROFS 欲测试写入权限的文件存在于只读文件系统内。

EFAULT 参数pathname指针超出可存取内存空间。

EINVAL 参数mode 不正确。

ENAMETOOLONG 参数pathname太长。

ENOTDIR 参数pathname为一目录。

ENOMEM 核心内存不足

ELOOP 参数pathname有过多符号连接问题。

EIO I/O 存取错误。

特别提醒:使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文件可能会造成系统安全上的问题。

在windows平台下还可以用API函数FindFirstFile()来判断文件或文件夹是否存在。

6、获取指定的目录

       GetCurrentDirectory();//获得当前目录
       SetCurrentDirectory();//设置当前目录
       GetSystemDirectory();//获得Windows系统目录
       GetWindowsDirectory()//获得Windows目录
       GetTempPath();//获取Windows临时文件目录

GetFullPathName()//获取指定文件的全路径
       SHGetSpecialFolderLocation()函数可以获取Windows桌面目录、启动目录、我的文档目录等

       第一个参数为“所有者窗口”,调用这个函数的时候可能出现对话框或消息框。

       第二个参数是一个整数id,决定哪个目录是待查找目录,它的取值可能是

       CSIDL_BITBUCKET 回收站  
       CSIDL_CONTROLS  控制面板
       CSIDL_DESKTOP   Windows桌面Desktop
       CSIDL_DRIVES    我的电脑
       CSIDL_FONTS     字体目录
       CSIDL_NETHOOD   网上邻居
       CSIDL_NETWORK   网上邻居虚拟目录
       CSIDL_PERSONAL  我的文档
       CSIDL_PRINTERS  打印机
       CSIDL_PROGRAMS  程序组
       CSIDL_RECENT    最近打开文档
       CSIDL_SENDTO    发送到"菜单项"
       CSIDL_STARTMENU 任务条启动菜单项
       CSIDL_STARTUP   启动目录
       CSIDL_TEMPLATES 临时文档

       第三个参数为pidl地址. SHGetSpecialFolderLocation把地址写到pidl

原文地址:http://wenku.baidu.com/link?url=98h1Wqau6ZXFTJQsiH6aS6OIvj0K6mW97_L4bXRDYB9f2YBiUtT7Jyk5yS5Odq0jBw48LdytxFbJqoVXg3jIliG2H8lOZ1eQ04zsBYudWgK

7、缩写的全路径和不缩写的全路径

GetLongPathName()将文件全路径转换为不缩写的全路径。

GetLongShortName()将文件全路径转换为缩写的全路径。

这两个函数极其重要!!!很多人写程序时不注意这一点——包括我,比如,使用GetModuleFileName获取文件路径,我们一般都将获取到的路径直接拿来用。在99.9%的情况下,我们获取到的是没有缩写的全路径,但是,某些情况下,获取到的却是缩写的,例如,

C:\Prog~1\Comm~1\aaa~1.exe

如果这个时候,取进程的名称,将得到aaa~1.exe,很明显,这种结果是我们所不愿意看到的,它会导致很严重的问题,而这种错误又是极其难以查找的。

所以,个人认为,在获取文件全路径后,都应该调用GetLongPathName,以便保证得到的路径不是缩写形式。

8、C/C++中文件、目录操作函数

remove():删除一个文件或目录。

rename():重命名或移动(如果系统支持的话)一个文件或目录

windows中操作文件和目录的函数的更多相关文章

  1. Python之IO编程——文件读写、StringIO/BytesIO、操作文件和目录、序列化

    IO编程 IO在计算机中指Input/Output,也就是输入和输出.由于程序和运行时数据是在内存中驻留,由CPU这个超快的计算核心来执行,涉及到数据交换的地方,通常是磁盘.网络等,就需要IO接口.从 ...

  2. IO编程(2)-操作文件和目录

    操作文件和目录 如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只 ...

  3. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  4. os,操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  5. python学习笔记 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  6. Python3 IO编程之操作文件和目录

    如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...

  7. Python中的文件和目录操作实现

    Python中的文件和目录操作实现 对于文件和目录的处理,虽然可以通过操作系统命令来完成,但是Python语言为了便于开发人员以编程的方式处理相关工作,提供了许多处理文件和目录的内置函数.重要的是,这 ...

  8. python—— 文件的打开模式和文件对象方法 & os、os.path 模块中关于文件、目录常用的函数使用方法

    引用自“鱼c工作室”     文件的打开模式和文件对象方法  : https://fishc.com.cn/forum.php?mod=viewthread&tid=45279&ext ...

  9. 【Python】[IO编程]文件读写,StringIO和BytesIO,操作文件和目录,序列化

    IO在计算机中指Input/Output,也就是输入和输出. 1.文件读写,1,读文件[使用Python内置函数,open,传入文件名标示符] >>> f = open('/User ...

随机推荐

  1. IOS学习之路十八(通过 NSURLConnection 发送 HTTP 各种请求)

    你想通过 Http 协议向服务器发送一个 Get 的包装请求,并在这个请求中添加了一些请 求参数. 向远程服务器发送一个 GET 请求,然后解析返回的数据.通常一个 GET 请求是添加了 一些参数的, ...

  2. IE8下提示'console'未定义错误

    在开发的过程中由于调试的原因,在代码中加入console.info("xxxx"),而未进行删除 在IE8下测试该代码所在的页面报错,如下: 需要注意的是,使用console对象查 ...

  3. 如何简单而优雅地升级Visual NMP中的PHP版本

    需求:自己想测试下不同版本的PHP性能,就想升级下 Visual 这个集成环境中PHP的版本 网上: 升级PHP到5.6.11 1.下载新的nts版的PHP并解压缩到bin\PHP下,保留原文件夹的名 ...

  4. 第一个python

    import MySQLdb import os,sys import string dto=os.getcwd()+"\\dto" dao=os.getcwd()+"\ ...

  5. html5基础的常用的技巧

    html5基础的常用的技巧 1. 新的Doctype声明 XHTML的声明太长了,我相信很少会有前端开发人员能手写出这个Doctype声明. <!DOCTYPE html PUBLIC &quo ...

  6. 设计模式:空对象模式(Null Object Pattern)

    设计模式:空对象模式(Null Object Pattern) 背景 群里聊到<ASP.NET设计模式>,这本书里有一个“Null Object Pattern”,大家就闲聊了一下这个模式 ...

  7. cf 323A A. Black-and-White Cube 立体构造 不知道为什么当k为奇数时构造不出来 挺有趣的题目吧

    A. Black-and-White Cube time limit per test 1 second memory limit per test 256 megabytes input stand ...

  8. HTTP/1.1协议(中文归纳版)

    一.介绍(introduction) 1. 目的——HTTP/0.9-〉HTTP/1.0-〉HTTP/1.1 2. 要求——MUST.REQUIRED.SHOULD 3. 术语——连接(Connect ...

  9. jsp-1 简单的应用servlet,并用其跳转页面

    jspweb里面用到的servlet跳转页面的方法 使用的jar包只有 commons-lang3-3.5.jar 运行时,tomcat会先根据web.xml里面的信息,查找servlet <? ...

  10. Oracle 数据备份、恢复以及导入时表空间不存在的解决方案

    一.数据备份(导出) 1.exp命令导出dmp文件(exp -help查看帮助信息) 命令:exp username/userpasswd@192.168.99.199/orcl file=C:\jd ...