2013-04-27 99 views
2

我正在执行::system("del *.log")在win32 exe中 上面的代码将输出打印到exe控制台。 我该如何抑制打印到控制台的输出?如何抑制输出:: system(“del * .log”)出现在控制台中

+1

一个更简单的方法将寻找自己的文件(['FindFirstFile'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa364418%28v= vs.85%29.aspx)/ ['FindNextFile'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa364428%28v=vs.85%29.aspx))和删除他们自己也是(['DeleteFile'](http://msdn.microsoft.com/en-us/library/windows/desktop/aa363915%28v=vs.85%29.aspx))。这种方法不会给你现在面临的问题。 – hvd 2013-04-27 08:41:35

+1

或使用'SHFileOperation()'。 – 2013-04-27 08:42:54

+0

当然,这更简单:) – hvd 2013-04-27 08:44:37

回答

1

试试这个:

::system("del *.log > nul") 
3

在Windows上,你应该使用SHFileOperation()代替。有可用的可变标志,如FOF_NO_UI,用于抑制对用户的视觉输出。例如:

SHFILEOPSTRUCT FileOp = {0}; 
FileOp.wFunc = FO_DELETE; 
FileOp.pFrom = "*.log\0"; 
FileOp.fFlags = FOF_FILESONLY | FOF_NO_UI; 
SHFileOperation(&FileOp);