24 windows_24_windows_file 文件系统 - 文件

windows_24_windows_file 文件系统 - 文件


  1. // windows_24_windows_file.cpp : 定义控制台应用程序的入口点。
  2. //
  3. #include "stdafx.h"
  4. #include <windows.h>
  5. void Create( )
  6. {
  7. //创建文件
  8. HANDLE hFile = CreateFile( "D:\\MyTest.txt",
  9. GENERIC_READ | GENERIC_WRITE,
  10. 0/*独占模式*/,
  11. NULL,
  12. CREATE_ALWAYS,
  13. FILE_ATTRIBUTE_NORMAL,
  14. NULL );
  15. //关闭文件
  16. CloseHandle( hFile );
  17. }
  18. //写数据
  19. void Write( )
  20. {
  21. //打开文件
  22. HANDLE hFile = CreateFile( "D:\\MyTest.txt",
  23. GENERIC_WRITE,
  24. 0,
  25. NULL,
  26. OPEN_EXISTING,
  27. FILE_ATTRIBUTE_NORMAL,
  28. NULL );
  29. if (hFile == NULL)
  30. {
  31. printf( "error:handle\n" );
  32. return;
  33. }
  34. //写入数据
  35. CHAR szBuff[] = "Hello File";
  36. DWORD nWritten = 0;
  37. WriteFile( hFile, szBuff, strlen( szBuff ), &nWritten, NULL );
  38. //关闭文件
  39. CloseHandle( hFile );
  40. }
  41. void Read( )
  42. {
  43. //打开文件
  44. HANDLE hFile = CreateFile( "D:\\MyTest.txt",
  45. GENERIC_READ,
  46. 0,
  47. NULL,
  48. OPEN_EXISTING,
  49. FILE_ATTRIBUTE_NORMAL,
  50. NULL );
  51. //获取文件长度
  52. DWORD nHigh = 0;
  53. DWORD nLow = GetFileSize( hFile, &nHigh );
  54. //分配空间
  55. LPSTR pszBuf = (LPSTR)malloc( nLow + 1 );
  56. memset( pszBuf, 0, nLow + 1 );
  57. //设置当前读取的位置
  58. SetFilePointer( hFile, 1, NULL, FILE_BEGIN );
  59. //读取数据
  60. DWORD nRead = 0;
  61. ReadFile( hFile, pszBuf, nLow + 1, &nRead, NULL );
  62. printf( "%s", pszBuf );
  63. free( pszBuf );
  64. //关闭文件
  65. CloseHandle( hFile );
  66. }
  67. //操作
  68. void Operate( )
  69. {
  70. //复制文件
  71. CopyFile( "D:\\MyTest.txt", "D:\\MyTest1.txt", FALSE );
  72. //删除文件
  73. DeleteFile( "D:\\MyTest.txt" );
  74. }
  75. //打印时间
  76. void PrintFileTime( LPSTR pszName, LPFILETIME pFileItem )
  77. {
  78. //转换成本时区时间
  79. FileTimeToLocalFileTime(
  80. pFileItem, // pointer to UTC file time to convert
  81. pFileItem // pointer to converted file time
  82. );
  83. //将文件时间转换成系统时间
  84. SYSTEMTIME systime = { 0 };
  85. FileTimeToSystemTime( pFileItem, &systime );
  86. printf( "\n%s %d-%d-%d %d:%d:%d", pszName, systime.wYear, systime.wMonth,
  87. systime.wDay, systime.wHour, systime.wMinute, systime.wSecond );
  88. }
  89. //获取属性
  90. void Attri( )
  91. {
  92. //获取文件的基本属性
  93. DWORD nAttri = GetFileAttributes( "D:\\MyTest1.txt" );
  94. printf( "nAttri = %0X\n", nAttri );
  95. //获取文件的属性信息
  96. WIN32_FILE_ATTRIBUTE_DATA data = { 0 };
  97. GetFileAttributesEx( "D:\\MyTest1.txt", GetFileExInfoStandard, &data );
  98. printf( "\nAttri=%d", data.dwFileAttributes );
  99. printf( "\nSizeHigh=%d", data.nFileSizeHigh );
  100. printf( "\nSizeLow=%d",data.nFileSizeLow );
  101. PrintFileTime( "\nCreateTime:", &data.ftCreationTime );
  102. PrintFileTime( "\nCreateTime:", &data.ftLastAccessTime );
  103. PrintFileTime( "\nCreateTime:", &data.ftLastWriteTime );
  104. }
  105. int _tmain(int argc, _TCHAR* argv[])
  106. {
  107. Create( );
  108. Write( );
  109. Read( );
  110. Operate( );
  111. Attri( );
  112. return 0;
  113. }





posted @ 2016-06-10 10:40  -刀狂剑痴-  阅读(189)  评论(0编辑  收藏  举报