2010-11-05 7 views
1

J'ai un programme qui démarre un autre programme. Dans le deuxième programme, j'essaie de supprimer un fichier. Si je cours directement le deuxième programme, pas de problème, le fichier est supprimé. Mais si je démarre le deuxième programme à partir du premier programme, j'obtiens une exception System.UnauthorizedAccessException. Je suppose que le deuxième programme n'obtient pas tous les accès du premier programme.Démarré Le processus ne peut pas supprimer le fichier

J'ai essayé beaucoup de suggestions que j'ai trouvées mais aucune d'elles n'a travaillé.
Ajout de Process.StartInfo.Verb = "runas" ne fonctionnait pas.
Ajout d'un fichier manifeste ne fonctionnait pas non plus (ou je l'ai fait mal, pas sûr)
J'ai mis le fichier .exe du deuxième fichier à "Exécuter en tant qu'administrateur" et cela ne fonctionnait pas.

Maintenant, comment résoudre ce problème?

Répondre

2

Le premier programme a laissé le fichier ouvert, le deuxième programme ne peut donc pas le supprimer.

Vous devez fermer le fichier dans le premier programme.

+0

Ah merde stupide moi. Je suppose que c'était trop évident>.> – Wildhorn

1

Un appel Dispose() sur le FileStream (par exemple) utilisé pour accéder au fichier dans le premier programme est peut-être manquant. Cela peut laisser le fichier sous-jacent en cours d'utilisation dans ce programme, bien que vous pensiez que les instances d'objet associées à ce fichier ont disparu, car elles sont hors de portée.

Publiez du code si vous souhaitez obtenir de meilleurs commentaires.

Questions connexes