文件的打开、复制、写入、创建、删除、获取设置 文件属性 查找文件 遍历文件夹等14.4.26

// WndPath.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "windows.h"
#include "stdlib.h"


void Create(){
	//创建文件  FILE_ATTRIBUTE_HIDDEN 隐藏属性
	HANDLE hFile=CreateFile("C:\\Test.txt",
		GENERIC_READ|GENERIC_WRITE,
		0,NULL,CREATE_ALWAYS,
		FILE_ATTRIBUTE_HIDDEN,
		NULL);
	char buff[260]="hello word";
	DWORD nWritten=0;
	//文件写入
	WriteFile(hFile,buff,strlen(buff),&nWritten,NULL);
		CloseHandle(hFile);
}
void Read(){

//	HANDLE hFile=CreateFile("D:\\test.txt",GENERIC_READ,0,NULL,
//		OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
	HANDLE hFile=CreateFile("C:\\Test.txt",
		GENERIC_READ,
		0,NULL,OPEN_EXISTING,
		FILE_ATTRIBUTE_HIDDEN,
		NULL);
	//获取文件长度 
	DWORD hSize=0;
	
	DWORD lSize=GetFileSize(hFile,&hSize);
	LPSTR pzBuf=(LPSTR)malloc(lSize+1);
	memset(pzBuf,0,lSize+1);
	DWORD nRead=0;
	//读取时 设置偏移量
	SetFilePointer(hFile,1,NULL,FILE_BEGIN);
	ReadFile(hFile,pzBuf,lSize,&nRead,NULL);
	printf("%s",pzBuf);
	free(pzBuf);
	CloseHandle(hFile);
}
void Operate(){

	CopyFile("C:\\Test.txt","C:\\Test1.txt",false);
	DeleteFile("C:\\Test.txt");
}
void PrintFileTime(LPSTR pszName,LPFILETIME pFileItem){
	//吧时区设置到我们的时区
	FileTimeToLocalFileTime(pFileItem,pFileItem);
	//吧文件时间转换为系统时间
	SYSTEMTIME systime={0};
	FileTimeToSystemTime(pFileItem,&systime);
	printf("%s:%d- %d -%d @ %d:%d:%d \n",pszName,systime.wYear,
		systime.wMonth,systime.wDay,systime.wHour,
		systime.wMinute,systime.wSecond);

}
//获取文件的信息 对应的还有SetFileAttributes文件属性等
void Getfileinfo(){
	DWORD nAttri=GetFileAttributes("C:\\Test1.txt");
	printf("nAttri=%08X \n",nAttri);//同时拥有 FILE_ATTRIBUTE_ARCHIVE FILE_ATTRIBUTE_HIDDEN属性显示的应该就是00000022
	WIN32_FILE_ATTRIBUTE_DATA data={0};
	GetFileAttributesEx("C:\\Test1.txt",GetFileExInfoStandard,
		&data);
	PrintFileTime("文件创建时间",&data.ftCreationTime);
	PrintFileTime("文件最后写入时间",&data.ftLastWriteTime);
	
}
WIN32_FIND_DATA find={0};

void Find(LPSTR nFile){
	char szFind[MAX_PATH]={0};
	sprintf(szFind,"%s*.*",nFile);
	HANDLE hFind=FindFirstFile(szFind,&find);

	//显示查找结果  如果要排序的话 只有自己写
	bool sc=true;
	while(sc==true){
		//按照目录 文件分类
		if(find.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
		{
		
			if(find.cFileName[0]!='.'){
			char cs[MAX_PATH]={0};
			sprintf(cs,"%s%s\\",nFile,find.cFileName);
			printf("[%s]\n",find.cFileName);
			Find(cs);
		}
		}else{
			printf("\t%s\n",find.cFileName);
			}
	sc=FindNextFile(hFind,&find);
	}
	FindClose(hFind);
}

int main(int argc, char* argv[])
{
	Create();
	Read();
	Operate();
	Getfileinfo();
	Find("D:\\LLK_WG\\");
	//printf("Hello World!\n");
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值