使用带有按钮的简单形式删除Windows Temp目录中的文件,无论该文件是否存在,如果按下该按钮,则表示已完成。
对于用户不知道位置的文件:最终文件将被混淆,但是如果找不到文件,我不需要表格抛出错误,并显示错误消息,指出在位置未找到文件.....
我尝试使用该代码,它似乎打开了一个控制台。我试图添加test123.txt文件,但该文件没有删除。
private void button1_Click(object sender, EventArgs e)
{
string strCmdText;
strCmdText = "del /q/f/s %TEMP%/test123.txt ";
System.Diagnostics.Process.Start("CMD.exe", strCmdText);
}
我希望能够删除文本文件,而用户不知道该文件的位置,即使该文件不存在。
答案 0 :(得分:4)
您可以使用以下代码执行此操作:
private void button1_Click(object sender, EventArgs e)
{
string tmpDir = Environment.ExpandEnvironmentVariables("%TEMP%");
string pathToFile = Path.Combine(tmpDir, "test123.txt");
if (File.Exists(pathToFile))
{
File.Delete(pathToFile);
}
//Print completed where you want
}
请注意,将临时文件的名称附加到方法外部的变量并使用它确实更好。在这种情况下,如果您想使用名称中的时间戳,uuid等来生成没有硬编码名称的临时文件,则对您有帮助
更新以下是我的回答Hans Passant,建议在System.IO的Path类中使用特殊方法来获取%TEMP%文件夹的路径。在阅读了MSDN上的文档之后,我同意这将是获取%TEMP%文件夹路径的更好方法。
private void button1_Click(object sender, EventArgs e)
{
string tmpDir = Path.GetTempPath();
string pathToFile = Path.Combine(tmpDir, "test123.txt");
if (File.Exists(pathToFile))
{
File.Delete(pathToFile);
}
//Print completed where you want
}
答案 1 :(得分:0)
删除文件的最佳方法是建议使用@Lemm。但是,如果您确实要使用cmd,则可以尝试以下代码:
ProcessInfo = new ProcessStartInfo("cmd", "/k del /q/f/s %TEMP%/test123.txt");
ProcessInfo.CreateNoWindow = true;
ProcessInfo.UseShellExecute = false;
System.Diagnostics.Process proc = System.Diagnostics.Process.Start(ProcessInfo);