Windows API學習之路(二)
阿新 • • 發佈:2019-02-12
今天要講的是
DeleteFile這個函式,這個函式用來刪除一個檔案
函式原型:
BOOL WINAPI DeleteFile(
_In_ LPCTSTR lpFileName // 刪除檔名
);
引數
lpFileName 輸入引數
所要刪除的檔案的相對路徑(如”1.txt”相對於當前的路徑) 或絕對路徑 (如”F:1.txt”)。
這裡我們可以看到引數lpFileName是一個常字串指標。返回值
返回BOOL值,那麼第一節的時候我們也看到過了 BOOL 其實就是int型別的同義字。如果該函式執行成功的話,會返回一個非零的數,如果失敗的話,會返回零。想知道錯誤資訊的話,就請使用 GetLastError 函式。
例項
//思路:首先判斷這個命令是不是強制刪除,有一個方法用來判斷Jud_Choi,如果是的話,呼叫DeleteFile函式是刪除檔案, //如果不是,迴圈語句詢問是否刪除 #include <windows.h> #include "tool.h" #include <iostream> int main(int argc,char *argv[]) { tool tool; if (argc == 1) { tool.help(); return 0; } tool.Jud_Choi(argv, argc); if (tool.get_Qz_del() == 0) { //迴圈準備 //cout << "1"<< endl; for (int i = 1; i < argc; i++) { cout <<"是否刪除檔案"<<argv[i]<< endl; cout <<"Y.是"<<" "<<"N.否"<< endl; tool.set_bj(); if (tool.get_bj()=='Y') { if (!DeleteFile(argv[i])) { cout << "刪除失敗" << endl; continue; } else { cout <<"刪除成功"<< endl; } } else { continue; } } } else { for (int i = 1; i < argc-1; i++) { if (!DeleteFile(argv[i])) { cout <<"刪除失敗"<< endl; } else { cout << "刪除成功" << endl; } } } }
#include <string.h> #include <iostream> using namespace std; class tool { public: void Jud_Choi(char *x[], int count); void help(); int get_Qz_del(); void set_bj(); char get_bj(); private: int Qz_del; char bj; }; void tool::help() { cout <<"rm2 <檔名>... <選項>"<< endl; } void tool::Jud_Choi(char *x[], int count) { for (int i = 1; i < count; i++) { if (*x[i] == '-') { if ((strcmp(x[i], "-f")) == 0) { Qz_del = 1; } } else { Qz_del = 0; } } } int tool::get_Qz_del() { return Qz_del; } void tool::set_bj() { cin >> bj; } char tool::get_bj() { return bj; }
下面是我定義的工具類用來存放各種用到的函式和封裝成員資料。
在用virual stadio 2013編譯的過程中,也出現了一些問題:
這個問題通過上網求解終於解決了:
只需要將熒光筆標註的地方改成使用多位元組字符集。
2.vs2013無法查詢或開啟pdb檔案
解決方法:
將Microsoft符號伺服器勾上就好。
再看一下執行結果吧
很棒,就這樣。
Busy for living or Busy for dying.
/*已經是第三遍了,再傳不上去我也沒辦法了*/