Удаление разблокированного файла в C # - PullRequest
2 голосов
/ 08 августа 2011

В программе на C # я создаю файлы.Я хочу удалить один файл с помощью этой команды: -

File.Delete(killFile);

killFile имеет значение = "C:\Documents and Settings\MehdiAnis\My Documents\outfile_0020.csv" killFile - это существующий файл.

После того, как я запустил команду Delete, файлвсе еще в каталоге.Сразу после удаления я добавил код FileInfo, чтобы проверить, существует ли файл,

FileInfo fi = new FileInfo(killFile);

Теперь fi.Exists показывает false

Я не уверен, что не так, это может быть проблема с разрешениями?Я просто написал файл в своей папке, почему я не могу удалить его?Как только файл создан, я не открываю его и ничего с ним не делаю, поэтому его не следует блокировать.

Что может быть не так, и где еще мне искать?

Ответы [ 2 ]

3 голосов
/ 08 августа 2011

За скриншот, который вы разместили на http://i548.photobucket.com/albums/ii341/MehdiAnis/cprob.jpg

На снимке экрана в окне проводника показан файл с именем eding в "_0020.csv". Вы передаете имя файла, оканчивающееся на «_20.csv», в соответствии с окном отладчика. Вы вызываете File.Delete с именем файла, который на самом деле не существует, и поэтому файл не удаляется.

Вы захотите отформатировать переменную killFile с отступом 0. Я полагаю, вы добавляете к нему какой-то счетчик, например killfile = killFile + i.ToString(). Попробуйте killfile = killFile + i.ToString("0000")

0 голосов
/ 08 августа 2011

Согласно MSDN , «Если удаляемый файл не существует, исключение не выдается».

Вы можете проверить наличие файла, который нужно удалить, используя File.Exists до того, как попытается удалить его. Я думаю, что ваша проблема в том, что вы ожидаете удалить файл, а не тот, который вы видите в папке.

...