Libérer clé USB après utilisation d'un SaveDialog [Résolu]

DavidDSA - 3 mai 2013 à 20:48 - Dernière réponse : korgis 411 Messages postés samedi 17 mai 2003Date d'inscription 16 mars 2018 Dernière intervention
- 7 mai 2013 à 00:11
Bonjour à tous,

J'ai une application développée avec Delphi 7 qui fonctionne sur Win7 64bit où j'ouvre un SaveDialog pour permettre à l'usagé de sauvegarder son fichier où il le veut bien. La plupart du temps, les usagés choisissent de sauvegarder sur une clé USB. Mais dès que le SaveDialog passe par la clé USB, il devient impossible d'éjecter la clé USB en toute sécurité. Le seul moyen pour libérer la clé USB est de fermer l'application. Est-ce qu'il y a moyen de libérer la clé USB sans être obligé de fermer l'application?

Merci

David
Afficher la suite 

4 réponses

Répondre au sujet
korgis 411 Messages postés samedi 17 mai 2003Date d'inscription 16 mars 2018 Dernière intervention - 3 mai 2013 à 21:43
+3
Utile
Salut,

Une manière simple (simpliste ?) de résoudre le problème, qui fonctionne sous D7 et XP32 :

var
  OldPath: string;
begin
  OldPath := GetCurrentDir;
  if SaveDialog1.Execute then
  begin
    MonFichierASauver.SaveToFile(SaveDialog1.FileName);
    ChDir(OldPath);
  end;
end;


ChDir ramène sous le répertoire initial (OldPath) ce qui permet de libérer la clé usb, à condition bien sûr que le répertoire initial ne soit pas situé sur celle-ci...
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de korgis
korgis 411 Messages postés samedi 17 mai 2003Date d'inscription 16 mars 2018 Dernière intervention - 4 mai 2013 à 19:41
+3
Utile
On peut faire aussi avec SetCurrentDir :
var
  OldPath: string;
begin
  OldPath := GetCurrentDir;
  if SaveDialog1.Execute then
  begin
    MonFichierASauver.SaveToFile(SaveDialog1.FileName);
    SetCurrentDir(OldPath);
  end;
end;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de korgis
0
Utile
C'était trop simple. Ça fonctionne. Merci beaucoup!

David
Commenter la réponse de DavidDSA
korgis 411 Messages postés samedi 17 mai 2003Date d'inscription 16 mars 2018 Dernière intervention - 7 mai 2013 à 00:11
0
Utile
Alors tu peux valider la ou les réponses qui te conviennent.
Ça ne me donne pas un dollar de plus...
Mais ça permet à quelqu'un qui chercherait sur le forum une réponse à cette question de venir voir ici, puisque le problème est marqué comme étant "résolu"
Commenter la réponse de korgis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.