file operation

  • API functions
    • HANDLE CreateFile(lpFileName,dwDesiredAccess,dwShareMode,lpSecurityAttributes,dwCreateDisposition,dwFlagsAndAttributes,hTemplateFile);
      e.g. CreateFile("c:\\abc\\word.txt",GENERIC_READ|GENERIC_WRITE|GENERIC_EXECUTE|GENERIC_ALL,0/*the file
      can not be shared*/,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
      * parameter dwCreationDisposition must one of these five values:
      2=CREATE_ALWAYS 不论文件是否存在总是创建文件或设备,如果已存在,则原文件被清空
      1=CREATE_NEW 只有当文件不存在的时候才创建一个新文件,如果指定文件已经存在,则创建失败,这是它和OPEN_EXISTING不一样的地方
      4=OPEN_ALWAYS 打开一个文件或设备,如果不存在,则创建一个文件或设备并打开
      3=OPEN_EXISTING 打开一个文件或设备,如果不存在,则打开失败
      5=TRUNCATE_EXISTING打开一个文件或设备并清空,如果不存在,则打开失败
      if this function succeeds, the return value will be a open handle to the specified device, file or
      maillsot.if the function fails, the return value will be INVALID_HANDLE_VALUE.
    • MoveFile
    • CopyFile(lpExistingFileName,lpNewFileName,bFailIfExists);
      bFailIfExists,如果为TRUE,则NewFileName存在时COPY失败,如果设置为FALSE,则会用新文件将原有文件覆盖。
    • DeleteFile(lpFileName);如果文件不存在则删除失败,如果文件是只读属性,则也是删除失败,除非之前先去除文件的只读属性,if fails return 0;if succeed return
      other value;

      typedef struct _SHFILEOPSTRUCT {
      HWND hwnd;
      UINT wFunc;
      PCZZTSTR pFrom;
      PCZZTSTR pTo;
      FILEOP_FLAGS fFlags;
      BOOL fAnyOperationsAborted;
      LPVOID hNameMappings;
      PCTSTR lpszProgressTitle;
      } SHFILEOPSTRUCT, *LPSHFILEOPSTRUCT;
    • SHFileOperation(LPSHFILEOPSTRUCT lpFileOp)Copies, moves, renames, or deletes a file system object.
  • C/C++ library functions[code]
     
    char *readfile(fstream fs,string fname)
    {
    fs.open(fname.c_str());
    if(fs.fail()){cout<<"open failed"<<endl;return 0;
    fs.seekg(0,ios::end);
    int length=tellg();
    char *buffer=new char[length+1];
    fs.seekg(0,ios::beg);
    fs.read(buffer,length);
    fs.close();
    return buffer;
    }
    • fstream("xxx.xxx",ios::in|ios::out|ios::trunc)
      related functions:seekg tellg seekp tellp fstream fs;
      fs.read(buffer,size);

       
      char *readfile(fstream fs,string fname)
      {
      fs.open(fname.c_str());
      if(fs.fail()){cout<<"open failed"<<endl;return 0;
      fs.seekg(0,ios::end);
      int length=tellg();
      char *buffer=new char[length+1];
      fs.seekg(0,ios::beg);
      fs.read(buffer,length);
      fs.close();
      return buffer;
      }
    • int rename( const char *oldname, const char *newname );
    • _findfirst
    • _findnext
  • Command Line
    • system("move oldname newname")带空格的路径名需要加双引号,移动文件夹和文件
    • system("del /s /q c:\\abc\\");删除文件夹下的所有文件,子目录下的文件也会被删除,但目录会保留

directory operation

  • API functions
    • MakeSureDirectoryPathExists("c:\\aa\\bb\\cc\\"); requirement:include &ltDbghelp.h&gt #pragma(lib,"dbghelp.lib");
    • CreateDirectoryEx(lpTemplateDirectory,lpNewDirectory,lpSecurityAttributes);//不能创建多层目录
    • RemoveDirectory(lpPathName);如果包含子目录,则删除失败
  • C/C++ library functions
    • _mkdir("\\aa"); if the intermidite directory does not exist, the create operation failed.
    • _rmdir("\\aa\\bb\\cc");//只有文件夹是空的时候才有效
    • int rename( const char *oldname, const char *newname );
  • Command Line
    • system ("rmdir /s /q c:\\aaa\\");
    • system("move oldname newname")带空格的路径名需要加双引号,移动文件夹和文件

c++文件操作相关的更多相关文章

  1. iOS:文件操作相关(18-03-23更)

    0.iOS文件系统 1.工程内文件 2.文件夹管理 3.文件操作 4.NSCache 附录: 1.沙盒文件夹.文件大小 2.清除沙盒 Library / Cache 下所有数据 3.测试plist 0 ...

  2. Linux(三) - 文件操作相关命令

    Ctl-A 光标移动到行首 Ctl-C 终止命令 Ctl-D 注销登录 Ctl-E 光标移动到行尾 Ctl-U 删除光标到行首的所有字符,在某些设置下,删除全行 Ctl-W 删除当前光标到前边的最近一 ...

  3. Android入门之文件系统操作(二)文件操作相关指令

    (一)获取总根 File[] fileList=File.listRoots(); //返回fileList.length为1 //fileList.getAbsolutePath()为"/ ...

  4. Linux文件操作相关命令

    1.创建文件夹: [root@izuf6ih01h8fzeziddwkfdz sm]# mkdir a 创建一个名为a的文件夹 2.创建文件: [root@izuf6ih01h8fzeziddwkfd ...

  5. Linux 文件操作相关常用命令

    1.创建文件夹 [root@izwz9148jq0xmzrb36r113z 20190726]# mkdir aaa //创建aaa文件夹 2.创建文件 [root@izwz9148jq0xmzrb3 ...

  6. 【.NET深呼吸】Zip文件操作(1):创建和读取zip文档

    .net的IO操作支持对zip文件的创建.读写和更新.使用起来也比较简单,.net的一向作风,东西都准备好了,至于如何使用,请看着办. 要对zip文件进行操作,主要用到以下三个类: 1.ZipFile ...

  7. Node基础篇(文件操作)

    文件操作 相关模块 Node内核提供了很多与文件操作相关的模块,每个模块都提供了一些最基本的操作API,在NPM中也有社区提供的功能包 fs: 基础的文件操作 API path: 提供和路径相关的操作 ...

  8. 第32课 Qt中的文件操作

    1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操 ...

  9. C++ 文件操作(CFile类)

    原文:文件操作(CFile),C吉羊 一.Visual C++编程文件操作 有如下方法可进行操作: (1)使用标准C运行库函数,包括fopen.fclose.fseek等. (2)使用Win16下的文 ...

随机推荐

  1. IOS界面切换

    好吧!表示这几天要实现  phonegap 打开IOS原生界面,因此也查询了一些方案. 有如下几种: 第一种:navigationcontroller //进入下层 [self.navigationC ...

  2. GET,POST——简述

    本文主要对GET与POST基本区别进行汇总并掌握. HTTPHTTP(即超文本传输协议)是现代网络中最常见和常用的协议之一,设计它的目的是保证客户机和服务器之间的通信.HTTP 的工作方式是客户端与服 ...

  3. win10 mac地址修改器

    NoVirus Thanks MAC Address Changer NoVirus Thanks MAC Address Changer is yet another simple MAC addr ...

  4. 利用烧鹅制作简单BadUSB,插谁谁怀孕

    所用硬件设备为烧鹅,烧鹅是RadioWar基于Teensy++ 2.0 AT90USB1286芯片设计的USB Rubber Ducky类开发板. 使用veil编码meterpreter生成paylo ...

  5. HDU 4349 Xiao Ming's Hope

    有这样一个性质:C(n,m)%p=C(p1,q1)*C(p2,q2).......%p,其中pkpk-1...p1,qkqk-1...q1分别是n,m在p进制下的组成. 就完了. #include&l ...

  6. Java 集合深入理解(5):AbstractCollection

    点击查看 Java 集合框架深入理解 系列, - ( ゜- ゜)つロ 乾杯~ 今天好累,来学学 AbstractCollection 吧! 什么是 AbstractCollection Abstrac ...

  7. android onConfigurationChanged讲解

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 相信大家对这个属性已经耳熟能详,如果大家受过转屏的折磨的话! 老规矩,先讲讲官方文档是怎么说的.为什 ...

  8. array_walk() 函数

    array_walk() 函数对数组中的每个元素应用回调函数.如果成功则返回 TRUE,否则返回 FALSE. 典型情况下 function 接受两个参数.array 参数的值作为第一个,键名作为第二 ...

  9. utf8与utf-8的区别

    相信很多程序员刚开始也会有这样的疑惑,如题,我也是.    其实,他们可以这样来区分.    一.在php和html中设置编码,请尽量统一写成“UTF-8”,这才是标准写法,而utf-8只是在wind ...

  10. break return

    用 break  跳出循环 用 return 跳出函数 用 continue 结束本次循环开始下次循环