windows api 每日一练(3)文件操作

参考:http://www.yesky.com/99/1824599.shtml

1.OpenFile 全功能函数,可以打开,创建,删除文件

HFILE WINAPI OpenFile(
  __in   LPCSTR lpFileName,
  __out  LPOFSTRUCT lpReOpenBuff,
  __in   UINT uStyle
);


2.获取文件长度

DWORD WINAPI GetFileSize(
  __in       HANDLE hFile,
  __out_opt  LPDWORD lpFileSizeHigh
);


3.获取文件类型

DWORD WINAPI GetFileType(
  __in  HANDLE hFile
);


4.获取指定文件时间信息

BOOL WINAPI GetFileTime(
  __in       HANDLE hFile,
  __out_opt  LPFILETIME lpCreationTime,
  __out_opt  LPFILETIME lpLastAccessTime,
  __out_opt  LPFILETIME lpLastWriteTime
);


5.获取文件名

(1)全名

DWORD WINAPI GetFullPathName(
  __in   LPCTSTR lpFileName,
  __in   DWORD nBufferLength,
  __out  LPTSTR lpBuffer,
  __out  LPTSTR* lpFilePart
);


(2)长路径名

DWORD WINAPI GetLongPathName(
  __in   LPCTSTR lpszShortPath,
  __out  LPTSTR lpszLongPath,
  __in   DWORD cchBuffer
);

(3)短路径名

DWORD WINAPI GetShortPathName(
  __in   LPCTSTR lpszLongPath,
  __out  LPTSTR lpszShortPath,
  __in   DWORD cchBuffer
);


Test

#include <windows.h>
#include <stdio.h>
#include <iostream>
int main()
{
  std::wstring originalStrFile(L"./test.txt");

HANDLE hFile; 

hFile = CreateFile(originalStrFile.c_str(),    // file to open
                   GENERIC_READ,          // open for reading
                   FILE_SHARE_READ,       // share for reading
                   NULL,                  // default security
                   OPEN_EXISTING,         // existing file only
                   FILE_ATTRIBUTE_NORMAL, // normal file
                   NULL);
//获?取?文?件?大?小?
DWORD dwSize =GetFileSize(hFile,NULL);
//获?取?文?件?类?型?
DWORD fileType=GetFileType(hFile);
//获?取?文?件?时?间?信?息?
FILETIME time1;
FILETIME time2;
FILETIME time3;
GetFileTime(hFile,&time1,&time2,&time3);
//获?取?文?件?名?
DWORD bufferLength=100;
TCHAR  buffer[100]=TEXT(""); 
TCHAR* lpPart[100]={NULL};
//获?取?全?名?
GetFullPathName(originalStrFile.c_str(),bufferLength,buffer,lpPart);
//获?取?长?路?径?名?
GetLongPathName(originalStrFile.c_str(),buffer,bufferLength);
//获?取?短?路?径?名?
GetShortPathName(originalStrFile.c_str(),buffer,bufferLength);
//关?闭?句?柄?对?象?
CloseHandle(hFile);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值