開發平台(Platform): (Ex: Win10, Linux, ...)
Windows
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
VS2019
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
無法透過system()刪除我指定的檔案
餵入的資料(Input):
預期的正確結果(Expected Output):
刪除掉檔案
錯誤結果(Wrong Output):
沒反應,檔案依舊還在。
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
因為我有先寫了一個Function為 (//刪除檔名,只獲得路徑字串)
string GetFilePath()
{
TCHAR _szFilePath[MAX_PATH + 1] = { 0 };
GetModuleFileName(NULL,_szFilePath,MAX_PATH);
(_tcsrchr(_szFilePath, _T('\\')))[1] = 0; //刪除檔名,只獲得路徑字串
string strPath;
for(int n = 0; _szFilePath[n];n++)
{
if (_szFilePath[n] != _T('\\'))
{
strPath += _szFilePath[n];
}
else
{
strPath += ("\\\\");
}
}
return strPath;
}
之後寫一個clsss,此內容顯示的為刪除我要的檔案LGPO_Machine_word.txt
因為檔案出現都是與執行檔同一個路徑
(自動跑出,要能自動刪除)
此類別為刪除的指令
class Class_LGPO_Order{
public:
string Del_Machine_Order() { return Machine_Txt_Del; }
private:
string Machine_Txt_Del = "Del " + GetFilePath() + "LGPO_Machine_word.txt";
}
主程式內寫的
void WINAPI ServiceMain(int argc, char** argv){
(中間很多是Windows Service需要的程式碼就不顯示)
關鍵在這:
while (true)
{
// 執行刪除
system(LGPO_Order.Del_Machine_Order().data());
}
}
補充說明(Supplement):
上述的LGPO_Order.Del_Machine_Order().data() <