windows文件操作

#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <shellapi.h>

/*
HINSTANCE ShellExecuteA(
  [in, optional] HWND   hwnd,用于显示 UI 或错误消息的父窗口的句柄。如果操作与窗口无关,则此值可以为NULL
  [in, optional] LPCSTR lpOperation,指向以空字符结尾的字符串的指针,在本例中称为动词,它指定要执行的操作
  [in]           LPCSTR lpFile,指向以空字符结尾的字符串的指针,该字符串指定要在其上执行指定动词的文件或对象
  [in, optional] LPCSTR lpParameters,如果lpFile指定一个可执行文件,则此参数是一个指向以空字符结尾的字符串的指针,该字符串指定要传递给应用程序的参数
  [in, optional] LPCSTR lpDirectory,指向以空字符结尾的字符串的指针,该字符串指定操作的默认(工作)目录
  [in]           INT    nShowCmd,指定应用程序在打开时如何显示的标志
 
 返回值
类型:HINSTANCE
如果函数成功,它返回一个大于 32 的值。如果函数失败,它返回一个指示失败原因的错误值。
);
HANDLE CreateFileA(
  [in]           LPCSTR                lpFileName,指向文件指针
  [in]           DWORD                 dwDesiredAccess,访问模式,读/写
  [in]           DWORD                 dwShareMode,共享模式
  [in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,指向安全属性的指针
  [in]           DWORD                 dwCreationDisposition,如何让创建
  [in]           DWORD                 dwFlagsAndAttributes,文件属性
  [in, optional] HANDLE                hTemplateFile,用于复制文件句柄
);
返回值
如果函数成功,则返回值是指定文件、设备、命名管道或邮槽的打开句柄。
如果函数失败,则返回值为INVALID_HANDLE_VALUE

BOOL WriteFile(
  [in]                HANDLE       hFile,文件或 I/O 设备(例如,文件、文件流、物理磁盘、卷、控制台缓冲区、磁带驱动器、套接字、通信资源、邮槽或管道)的句柄
  [in]                LPCVOID      lpBuffer,指向包含要写入文件或设备的数据的缓冲区的指针。该缓冲区必须在写操作期间保持有效。在写操作完成之前,调用者不得使用此缓冲区。
  [in]                DWORD        nNumberOfBytesToWrite,要写入文件或设备的字节数,零值指定空写操作。空写操作的行为取决于底层文件系统或通信技术。
  [out, optional]     LPDWORD      lpNumberOfBytesWritten,一个指向接收使用同步hFile参数时写入的字节数的变量的指针
  [in, out, optional] LPOVERLAPPED lpOverlapped,如果hFile参数是用FILE_FLAG_OVERLAPPED打开的, 则需要指向OVERLAPPED结构的指针,否则该参数可以为 NULL..
);
BOOL ReadFile(
  [in]                HANDLE       hFile,设备句柄
  [out]               LPVOID       lpBuffer,指向接收从文件或设备读取的数据的缓冲区的指针
  [in]                DWORD        nNumberOfBytesToRead,读取的最大字节数
  [out, optional]     LPDWORD      lpNumberOfBytesRead,一个指向接收使用同步hFile参数时读取的字节数的变量的指针
  [in, out, optional] LPOVERLAPPED lpOverlapped
);
*/
int main()
{
    //ShellExecute(NULL, L"open", L"D:\\1.txt", NULL, NULL, SW_SHOWNORMAL);  //可用于后门应用
    HANDLE hFILE = CreateFile(L"D:\\2.txt", GENERIC_WRITE | GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); //创建文件
    char buff[256]="good up up";
    DWORD d;
 /*   if (WriteFile(hFILE,&buff,strlen(buff),NULL,NULL))
    {
        printf("执行成功!");
    }
    else
    {
        return 0;
    }
 */
    char buff2[256]={0};//存储读取的文件内容 ,不赋予0,初始化为 cc cc cc ...,读取时变成烫烫烫....
    ReadFile(hFILE,&buff2,256,&d,NULL);
    printf("%s", buff);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值