热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

windowsapi每日一练(3)文件操作

参考:http:www.yesky.com991824599.shtml1.OpenFile全功能函数,可以打开,创建,删除文件HFILEWINAPIOpenFile(__i

参考: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 
#include 
#include 
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);
}

推荐阅读
  • 1.File类:文件和目录路径名的抽象表现形式2.创建对象:File(Stringpathname)通过给定的路径创建文件对象File(Stringpa ... [详细]
  • FroggerTimeLimit:1000MSMemoryLimit:65536KTotalSubmissions:32257Accepted:10396DescriptionFr ... [详细]
  • 九宫格计算. ... [详细]
  • 题目描述输入整型数组和排序标识,对其元素按照升序或降序进行排序(一组测试用例可能会有多组数据)本题有多组输入,请使用whil ... [详细]
  • 1.安装cordovapluginaddcordova-plugin-file-transfercordovapluginaddcordova-plugin-fi ... [详细]
  • 请写出一下程序的输出内容***2018032122:02:03**Brief:**Author:ZhangJianWei**Email:Dream_Dog163.com* ... [详细]
  • PIMPL 是 C++ 中的一个编程技巧,意思为指向实现的指针。具体操作是把类的实现细节放到一个单独的类中,并用一个指针进行访问 ... [详细]
  • 最近自己做一个工具最后涉及到一个存储成bmp位图的形式,由于这部分并不是整个project的重点我就从网上找了例子改了改,但是目前的问题是有很多时候都是存储的bmp全黑,我也并不知道是怎么回事。 ... [详细]
  • DFS基本概念步骤优缺点典型例题递推基本概念直接或者间接调用自身的算法称为递归算法一般数据n ... [详细]
  • 题目链接:杭电多校7-VirtualJudgevjudge上题目显示的有问题,我下面附上官方题目:样例输入:32201 ... [详细]
  • 题意给出一个长度为n的序列,有一些位置可以放任意的数,问最长上升序列的长度。n ... [详细]
  • C模板实现的单向链表,实现了链表的初始化创建,元素插入,元素链表末尾添加,元素删除,链表清空Lists.h# ... [详细]
  • 此题有一个大坑id范围为1e9此题题意是按照同类按照价格大小从大到小输出,如果价格相等再按照id从小到大输出。​#includeusin ... [详细]
  • [USACO 2006 November Gold] 玉米地Corn Fields
    题目描述  FarmerJohn新买了一块长方形的牧场,这块牧场被划分成M行N列(1<M<12;1<N<12),每一格都是一块正方形的土地。FJ打 ... [详细]
  • 问题描述  编写一个程序,输入一个1000以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示。  输入格式:输 ... [详细]
author-avatar
王者荣耀戒毒所
这个家伙很懒,什么也没留下!