Запущенный процесс не может удалить файл - PullRequest
1 голос
/ 05 ноября 2010

У меня есть программа, которая запускает другую программу. Во второй программе я пытаюсь удалить файл. Если я запускаю непосредственно вторую программу, нет проблем, файл будет удален. Но если я запускаю вторую программу из первой, я получаю исключение System.UnauthorizedAccessException.

Я предполагаю, что вторая программа не получает полный доступ к первой программе.

Я перепробовал много предложений, которые нашел, но ни одно из них не сработало.
Добавление Process.StartInfo.Verb = "runas" не сработало.
Добавление файла манифеста тоже не сработало (или я ошибся, не уверен)
Я установил .exe второго файла на «Запуск от имени администратора», и он не работал.

Теперь, как мне это исправить?

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Первая программа оставила файл открытым, поэтому вторая программа не может удалить его.

Вам необходимо закрыть файл в первой программе.

1 голос
/ 05 ноября 2010

Возможно, вы пропустили вызов Dispose() на FileStream (например), используемом для доступа к файлу в первой программе. Это может привести к тому, что базовый файл будет использоваться в этой программе, хотя вы думаете, что экземпляры объекта, связанные с ним, исчезли, потому что они находятся вне области видимости.

Разместите некоторый код, если хотите получить лучший отзыв.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...