房建设计网站好大连app开发制作
- 作者: 五速梦信息网
- 时间: 2026年03月21日 11:17
当前位置: 首页 > news >正文
房建设计网站好,大连app开发制作,自己做视频网站可以吗,域名服务器没有该网站的域的列表在编程中#xff0c;针对磁盘与目录的操作也是非常重要的#xff0c;本章将重点介绍如何实现针对文件目录与磁盘的操作方法#xff0c;其中包括了删除文件#xff0c;文件拷贝#xff0c;文件读写#xff0c;目录遍历输出#xff0c;遍历磁盘容量信息#xff0c;磁盘格…在编程中针对磁盘与目录的操作也是非常重要的本章将重点介绍如何实现针对文件目录与磁盘的操作方法其中包括了删除文件文件拷贝文件读写目录遍历输出遍历磁盘容量信息磁盘格式化输出分区表数据监控目录变化等。
11.1 ReadFile
ReadFile是一个文件读取函数该函数可以将一个文件读入到特定的缓冲区内在读取之前读者需要自行调用CreateFileA函数打开一个文件首先来看一下打开文件的函数原型
HANDLE CreateFileA(LPCSTR lpFileName,DWORD dwDesiredAccess,DWORD dwShareMode,LPSECURITY_ATTRIBUTES lpSecurityAttributes,DWORD dwCreationDisposition,DWORD dwFlagsAndAttributes,HANDLE hTemplateFile
);函数创建或打开一个文件或输入输出(I/O)设备的函数。函数返回一个类型为 HANDLE 的文件句柄该句柄可用于后续对文件的读写操作。如果文件创建成功返回值是文件的句柄如果函数失败则返回值是 INVALID_HANDLE_VALUE(-1)。
参数说明
lpFileName要打开的文件名或设备名该参数可以是完整路径名、相对路径名或文件名和相对路径名的组合。dwDesiredAccess要求对文件进行的访问类型如 GENERIC_READ 或 GENERIC_WRITE也可以同时指定。dwShareMode其他进程访问该文件时的共享模式如 FILE_SHARE_READ 或 FILE_SHARE_WRITE。lpSecurityAttributes一个指向 SECURITY_ATTRIBUTES 结构的指针指定文件的安全属性。该参数可以为空表示文件没有安全属性。dwCreationDisposition如何创建新的文件如 CREATE_NEW 或 OPEN_ALWAYS。dwFlagsAndAttributes文件的属性和标志如 FILE_ATTRIBUTE_NORMAL 或 FILE_FLAG_BACKUP_SEMANTICS。hTemplateFile文件句柄该文件句柄必须是 GENERIC_READ 访问类型的文件。
接着是ReadFile函数的原型定义
BOOL ReadFile(HANDLE hFile,LPVOID lpBuffer,DWORD nNumberOfBytesToRead,LPDWORD lpNumberOfBytesRead,LPOVERLAPPED lpOverlapped
);参数说明 hFile: 要读取的文件句柄 lpBuffer: 指向用于存储读取数据的缓冲区的指针 nNumberOfBytesToRead: 要读取的字节数 lpNumberOfBytesRead: 返回实际读取的字节数的指针 lpOverlapped: 指定了异步读取的选项。如果想要同步读取该参数可以为NULL。
该函数如果函数成功读取则返回非零值lpNumberOfBytesRead指向的变量将被设置为实际读取的字节数如果函数失败则返回零。要获取扩展错误信息可调用GetLastError()函数。
#include iostream
#include Windows.hint main(int argc, char* argv[])
{HANDLE hFile;DWORD fileSize, readSize;char* buffer;hFile CreateFile(d:\lyshark.exe, // 文件名GENERIC_READ, // 读取权限0, // 阻止其他进程访问NULL, // 子进程不可继承本句柄OPEN_EXISTING, // 仅当该文件或设备存在时打开它FILE_ATTRIBUTE_NORMAL, // 普通文件NULL); // 不适用模板文件if (hFile INVALID_HANDLE_VALUE){return 0;}fileSize GetFileSize(hFile, NULL); // 获取文件大小buffer (char)malloc(fileSize 1); // 获取一块内存buffer[fileSize] \0; // 设置结尾ReadFile(hFile, // 文件句柄buffer, // 读取到的文件所存放的缓冲区fileSize, // 要读取的字节数readSize, // 实际读取的字节数NULL // 用 FILE_FLAG_OVERLAPPED 打开时所需的);printf(buffer);CloseHandle(hFile);free(buffer);system(pause);return 0;
}11.2 CopyFile
CopyFile 函数用于将一个文件从一个位置复制到另一个位置该函数原型为
BOOL CopyFile(LPCWSTR lpExistingFileName,LPCWSTR lpNewFileName,BOOL bFailIfExists
);其中lpExistingFileName 表示要复制的文件名lpNewFileName 表示复制后的新文件名bFailIfExists 表示如果新文件名已经存在是否覆盖。如果成功复制文件则返回非零值。如果失败则返回零。
#include iostream
#include Windows.h// 判断是否为目录
BOOL isDirectory(char path)
{WIN32_FIND_DATA fd;BOOL rel FALSE;char* p path;// 查找到第一个文件的句柄HANDLE hFind FindFirstFile(path, fd);while (p ! \0) p;// 如果结尾是这两种符号就肯定是目录if ((–p) \ || *(p) / ){p \0;return TRUE;}// 判断是否获取错误if (hFind ! INVALID_HANDLE_VALUE){// 文件信息按位与上目录属性, 非目录则全部置零if (fd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY){rel TRUE;}// 关闭查找句柄FindClose(hFind);}return rel;
}int main(int argc, char argv[])
{char file_src[MAX_PATH] { 0 };char file_dest[MAX_PATH] { 0 };strcpy(file_src, d://lyshark.exe);strcpy(file_dest, d://);if (isDirectory(file_dest)){// 如果第二个参数是目录,则拼装新的文件路径sprintf(file_dest, %s\%s, file_dest, file_src);}if (CopyFile(file_src, file_dest, 0) 0){printf(文件复制失败 \n);}else{printf(文件已复制 \n);}system(pause);return 0;
}11.3 MoveFile
MoveFile 函数用于将文件从一个位置移动到另一个位置该函数可以用于重命名文件或将文件从一个目录移动到另一个目录。如果要在同一目录中重命名文件可以将文件的新名称作为 lpNewFileName 参数提供而 lpExistingFileName 参数应保持不变。如果要移动文件到另一个目录可以提供新目录的路径和名称作为 lpNewFileName参数该函数原型如下所示
BOOL MoveFile(LPCTSTR lpExistingFileName,LPCTSTR lpNewFileName
);其中lpExistingFileName 是要移动的文件的完整路径和名称lpNewFileName 是文件的新路径和名称。如果文件成功移动则函数返回非零值否则返回零读者需要注意该函数只能移动文件无法移动文件夹。如果要移动文件夹可以使用 MoveFileEx() 函数。
#include iostream
#include Windows.h// 判断是否为目录
BOOL isDirectory(char* path)
{WIN32_FIND_DATA fd;BOOL rel FALSE;char* p path;// 查找到第一个文件的句柄HANDLE hFind FindFirstFile(path, fd);while (p ! \0) p;// 如果结尾是这两种符号就肯定是目录if ((–p) \ || *(p) / ){p \0;return TRUE;}// 判断是否获取错误if (hFind ! INVALID_HANDLE_VALUE){// 文件信息按位与上目录属性, 非目录则全部置零if (fd.dwFileAttributes FILE_ATTRIBUTE_DIRECTORY){rel TRUE;}// 关闭查找句柄FindClose(hFind);}return rel;
}int main(int argc, char argv[])
{char file_src[MAX_PATH] { 0 };char file_dest[MAX_PATH] { 0 };strcpy(file_src, d://lyshark.exe);strcpy(file_dest, d://lyshark);if (isDirectory(file_dest)){// 如果第二个参数是目录, 则拼装新的文件路径sprintf(file_dest, %s\%s, file_dest, file_src);}if (MoveFile(file_src, file_dest) 0){printf(文件剪切失败 \n);}else{printf(文件剪切成功 \n);}system(pause);return 0;
}11.4 DelteFile
DeleteFile 函数用于删除指定的文件该函数位于windows.h头文件中此函数只能用于删除文件而无法删除目录如果需要删除目录则需要使用RemoveDirectory来实现该函数原型如下
BOOL DeleteFile(
LPCTSTR lpFileName
);其中lpFileName 参数是一个指向以 NULL 结尾的字符串表示要删除的文件名可以是绝对路径或相对路径函数执行成功时返回 TRUE否则返回 FALSE如果删除失败则可以调用GetLastError()得到失败代码。
#include iostream
#include Windows.hint main(int argc, const char* argv[])
{// 如果非零则删除失败if (!DeleteFile(d://lyshark.exe)){printf(删除文件错误%x \n, GetLastError());}system(pause);return 0;
}
- 上一篇: 房建设计图网站济南网站建设销售招聘
- 下一篇: 房门户网站如何做优化钓鱼转转网站在线生成
相关文章
-
房建设计图网站济南网站建设销售招聘
房建设计图网站济南网站建设销售招聘
- 技术栈
- 2026年03月21日
-
房地产网站制作wordpress搜索条件
房地产网站制作wordpress搜索条件
- 技术栈
- 2026年03月21日
-
房地产网站开发公司电话电商运营教程
房地产网站开发公司电话电商运营教程
- 技术栈
- 2026年03月21日
-
房门户网站如何做优化钓鱼转转网站在线生成
房门户网站如何做优化钓鱼转转网站在线生成
- 技术栈
- 2026年03月21日
-
房山广州网站建设昆明抖音推广公司
房山广州网站建设昆明抖音推广公司
- 技术栈
- 2026年03月21日
-
房山网站开发北京网站建设华网天下
房山网站开发北京网站建设华网天下
- 技术栈
- 2026年03月21日






