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. 长度为n的数组,有一个数重复出现了n/2+1次,找出(三种方法)

    问题: 长度为n的数组,有一个数重复出现了n/2+1次,找出这个数:   解决: 比较直接的思路是遍历每个元素,让其与剩下其他元素比较,相等一次计数器sum++,直到sum=n/2+1为止: #inc ...

  2. linux下使用kpartx挂载虚拟文件系统

    在linux中,如果映像文件(.img)含有分区表的话,那么用losetup这个程序来加载文件系统就有点力不从心了.因为losetup只能加载无分区的文件系统映像文件.不过有一个好东西配合losetu ...

  3. 什么是Numpy的ndarray

    什么是Numpy的ndarray 首先,Numpy的核心是ndarray. 然后,ndarray本质是数组,其不同于一般的数组,或者Python 的list的地方在于它可以有N 维(dimention ...

  4. Redis系统学习 五、管理

    在最后一章里,我们将集中谈论Redis运行中的一些管理方面内容.这是一个不完整的Redis管理指南,我们将会回答一些基本的问题,初接触Redis的新用户可能会很感兴趣. 配置(Configuratio ...

  5. OpenCascade

    Hello World of OpenCascade   Hello World of OpenCascade eryar@163.com 摘要Abstract:以一个经典的Hello World程序 ...

  6. XHtml(Xml+Html)语法知识(DTD、XSD)

    那点你不知道的XHtml(Xml+Html)语法知识(DTD.XSD) 什么是XHtml: 摘录网上的一句话,XHTML就是一个扮演着类似HTML的角色的XML. XHtml可当模板引擎应用: CYQ ...

  7. tmux tutorial

    This is a great tutorial about tmux quick start: http://www.youtube.com/watch?v=wKEGA8oEWXw&nore ...

  8. network重启失败原因

    /etc/sysconfig/network-scripts/ifcfg-eth0   DEVICE='eth0'  eth0后面千万不能加空格之类的  

  9. Xcode4.6 开发 metaio 增强现实 项目(二)--增强现实的实现

    经过昨天的一些步骤,我们已经将我们的IOS应用的基本界面搭建好,下面我们将开始新的征程:增强现实技术的实现: 进入webView后,我们要选用我们这次需要用的nib文件,它是一个家居摆放应用的界面文件 ...

  10. 应用Git Flow—Git团队协作最佳实践

    规范的Git使用 Git是一个很好的版本管理工具,不过相比于传统的版本管理工具,学习成本比较高. 实际开发中,如果团队成员比较多,开发迭代频繁,对Git的应用比较混乱,会产生很多不必要的冲突或者代码丢 ...