用WindowsAPI實現檔案複製功能

2021-08-18 09:47:08 字數 1836 閱讀 9619

注釋也在裡面

檔名為 copyfile.c 執行出來的exe為 copyfile.exe

#include #include #define buf_size 256

int main (int argc, lptstr argv )

//如果通過上面判斷語句的話說明引數輸入符合形式 則進行下乙個判斷

//(1)判斷檔案1是否能開啟, 建立乙個控制代碼來標識輸入檔案

//createfile 這是乙個多功能的函式,可開啟或建立以下物件,並返回可訪問的控制代碼:控制台,通訊資源,目錄(唯讀開啟),磁碟驅動器,檔案,郵槽,管道。

handlein = createfile (argv [1], generic_read,

file_share_read, null,

open_existing, file_attribute_normal, null);

// printf("%ld", handlein);

//如果檔案開啟失敗 提示使用者 並且呼叫getlasterror()函式取得上乙個函式(也就是createfile函式)操作時所產生的錯誤**

if (handlein == invalid_handle_value)

//同上 這次是判斷是否能開啟檔案2, 解釋如上

handleout = createfile (argv [2], generic_write, 0, null,

create_always, file_attribute_normal, null);

if (handleout == invalid_handle_value)

//下面進行檔案複製的操作 呼叫readfile和writefile函式 每次讀入位元組數為buf_size

//readsizein指向實際讀取位元組數的指標 而且readfile呼叫成功,返回非0,readsizein也要是大於0才表示可以繼續讀

while (readfile (handlein, buffer, buf_size, &readsizein, null) && readsizein > 0)

} //提示複製成功!

printf ("檔案複製時成功\n");

//關閉控制代碼

closehandle (handlein);

closehandle (handleout);

return 0;

}

我此時的檔案存在情況 只有1.txt 和 2.txt

檢視兩個檔案

首先我要設定2.txt為唯讀 這樣就會觸發第二個錯誤

結果

Windows API實現檔案的查詢

在實際應用,經常要用到檔案的查詢,在前面,我們給大家介紹了如何用cfilefind類實現檔案的遍歷以及如何用列表控制項顯示。這裡,我們主要介紹一下如何使用windows api來實現檔案的查詢。1 findfirstfile 它有兩個引數,第乙個是要查詢的檔名,第二個是儲存查詢到的資訊,型別為win...

用C 呼叫Windows API實現自動登入

設計初衷 公司為了安全性考慮,不讓密碼被太多人知道,所以想實現乙個自動登入的模組。設計思想 主要是通過呼叫windows api中的一些方法,主要使用的也就是findwindow,showwindow,setforegroundwindow和sendmessage這四個方法,用視窗名或類名,找到目標...

用Windows API分解路徑

在很多 中看到,由於需要獲取乙個路徑字串中的檔名或者副檔名,很多程式設計師都用了c庫中的字串查詢函式來獲取。這樣子寫得 很多,也麻煩。其實在vc中,可以用更好的方法來獲取。沒有什麼特別多說明,如下 lptstr szfilename new tchar max path getmodulefilen...