Как удалить файл, а не отображать местоположение - PullRequest
0 голосов
/ 10 июня 2019

Удалите файл в каталоге 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);
}

Я хотел бы иметь возможность удалить текстовый файл, если пользователь не знает, где находится файл, даже если он этого не делает.не существует.

Ответы [ 2 ]

4 голосов
/ 10 июня 2019

Вы можете сделать это, используя следующий код:

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 и т. Д. В имени

ОБНОВЛЕНИЕ Ниже мой ответ Ханс Пассант посоветовал использовать специальный метод в классе Path из System.IO, чтобы получить путь к папке% 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
}
0 голосов
/ 11 июня 2019

Лучший способ удалить файл, как предложено @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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...