您的位置:首页 > 其它

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

2014-04-26 12:34 716 查看
// 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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐