zoukankan      html  css  js  c++  java
  • C++之文件操作

    CreateFile:获得一个已存在文件句柄或者新建文件句柄
    
    HANDLE CreateFileW(
      LPCWSTR               lpFileName,//文件路径
      DWORD                 dwDesiredAccess,//文件的访问控制,读GENERIC_READ、写GENERIC_WRITE,读写(GENERIC_READ | GENERIC_WRITE)
      DWORD                 dwShareMode,//零表示不共享,FILE_SHARE_READ、/、FILE_SHARE_WRITE对文件进行共享访问
      LPSECURITY_ATTRIBUTES lpSecurityAttributes,//安全描述符
      DWORD                 dwCreationDisposition,//文件不存在或存在时的操作
      DWORD                 dwFlagsAndAttributes,//设置文件标志位
      HANDLE                hTemplateFile//大多数情况为NULL
    );
    
    dwCreationDisposition:指定当文件存在或不存在时的操作。常见的操作有5种:
    CREATE_NEW:创建文件,如果文件存在会出错;
    CREATE_ALWAYS:创建文件,会修改前一个文件;
    OPEN_EXISTING:文件已经存在;
    OPEN_ALWAYS:如果不存在就创建;
    TRUNCATE_EXISTING:将现有的文件缩短为零长度;
    dwFlagAndAttributes:表示新创建文件的属性。文件的常见属性有5种:
    FILE_ATTRIBUTE_ARCHIVE:标记为归档属性;
    FILE_ATTRIBUTE_NORMAL:默认属性;
    FILE_ATTRIBUTE_HIDDEN:隐藏文件或目录;
    FILE_ATTRIBUTE_READONLY:文件为只读;
    FILE_ATTRIBUTE_SYSTEM:文件为系统文件;
    
    
    WriteFile:写文件
    
    BOOL WriteFile(
      HANDLE       hFile,//文件句柄
      LPCVOID      lpBuffer,//要写入的数据缓存区
      DWORD        nNumberOfBytesToWrite,//要写入的字节数
      LPDWORD      lpNumberOfBytesWritten,//设置一个遍历,用来接收写入的内容
      LPOVERLAPPED lpOverlapped//大多数情况为NULL
    );
    
    ReadFile:读文件 与写文件类似
    
    BOOL ReadFile(
      HANDLE       hFile,
      LPVOID       lpBuffer,
      DWORD        nNumberOfBytesToRead,
      LPDWORD      lpNumberOfBytesRead,
      LPOVERLAPPED lpOverlapped
    );
    
    
    
    #include<windows.h>
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
    	//文件句柄
    	HANDLE hFile; //用来接收CreateFile返回来的句柄,用这个句柄来进行写入的操作
    	DWORD  dwWritten;
    	TCHAR  szSystemDir[MAX_PATH]; //字符数组,用于存储系统目录
    
    	GetSystemDirectory(szSystemDir, MAX_PATH);//获取系统目录
    	hFile = CreateFile("test.txt",
    		GENERIC_WRITE,
    		0,
    		NULL,
    		CREATE_ALWAYS,
    		FILE_ATTRIBUTE_NORMAL,
    		NULL);//创建文件txt
    
    	if (hFile != INVALID_HANDLE_VALUE)
    	{
    		if (!WriteFile(hFile, szSystemDir, lstrlen(szSystemDir), &dwWritten, NULL))//将系统目录,系统信息写入文件中
    		{
    			return GetLastError(); //写入失败 返回错误信息
    		}
    	}
    	CloseHandle(hFile);//关闭文件
    	return 0;
    }
    
    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    面向接口程序设计思想实践
    Block Chain Learning Notes
    ECMAScript 6.0
    Etcd Learning Notes
    Travis CI Build Continuous Integration
    Markdown Learning Notes
    SPRING MICROSERVICES IN ACTION
    Java Interview Questions Summary
    Node.js Learning Notes
    Apache Thrift Learning Notes
  • 原文地址:https://www.cnblogs.com/Yang34/p/14392830.html
Copyright © 2011-2022 走看看