程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> Windows95/NT中實現文件拷貝的編程方法

Windows95/NT中實現文件拷貝的編程方法

編輯:vc教程

在Windows中實現文件的操作主要有兩種方法。一種是直接利用CFile 類的操作成員函數來實現,它要用到對於文件操作的底層操作方式,如READ、WRITE、GETLENTH等,並且要直接操作文件的屬性,如創建、讀、寫等;而且,其緩沖區的設置對於文件的大小和不同的計算機是不同的,特別是對於長度很大的數據庫進行備份,很難達到最佳效果。

另一種有效的方式是利用32外殼來實現這些對於文件的操作。它可以實現包括文件的拷貝、更名、移動及刪除等,並且可以支持通配符(如*和?),也可以直接對一個目錄或目錄樹進行操作。

本文分析了Win32外殼API對於文件操作的原理,並利用Visual C++6.0實現文件的拷貝操作。

一、 原理與結構

Windows95/NT中提供了一個API函數SHFileOperation(),它只有一個指向SHFILEOPSTRUCT結構的參數。SHFileOperation()函數的原形如下:

WIN SHELL API int WINAPI SHFileOperation (LPSHFILEOPSTRUCT lpFIleOp);

LPSHFILEOPSTRUCT結構包含有進行文件操作的各種信息, 其具體的結構如下:

Typedef struct _ShFILEOPSTRUCT {
HWND hWnd;      //消息窗口
UINT wFunc;     //操作類型
LPCSTR pFrom;    //源文件及路徑
LPCSTR pTo;     //目標文件及路徑
FILEOP_FLAGS fFlags; //操作與確認標志
BOOL fAnyOperationsAborted; //操作選擇位
LPVOID hNameMappings;    //文件映射
LPCSTR lpszProgressTitle;  //進度窗口標題
} SHFILEOPSTRUCT, FAR* LPSHFILEOPSTRUCT;

在這個結構中,有幾個成員很重要。hWnd是指向發送消息的窗口,pFrom與pTo是進行文件操作的源文件名和目標文件名,它包含文件的路徑,對於多個文件名之間用NULL作為間隔,並且可以支持通配符*和?。如源文件或目錄有兩個,則應是:

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved