IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Delphi] Comment savoir si un disque existe ?


Sujet :

Langage Delphi

  1. #1
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut [Delphi] Comment savoir si un disque existe ?
    Bonjour....
    J'ai un programme écrit en pascal dans lequel je demande à l'utilisateur de m'indiquer un chemin de sauvegarde.
    Mais comment je peux vérifier que le disque spécifié par cet utilisateur existe vraiment sur la machine, et tant qu'à faire que la place y est suffisante pour le stockage de mon fichier?????

    Merci.

  2. #2
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    sous quel OS

  3. #3
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    je suis sous Windows 2000 professionnel

  4. #4
    Membre éclairé

    Inscrit en
    Avril 2003
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 284
    Points : 773
    Points
    773
    Par défaut
    En utilisant les fonctions disksize et diskfree par exemple...

    disksize <>-1 te dit si le disque existe
    diskfree fait le reste...

  5. #5
    Membre habitué Avatar de Jayceblaster
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    420
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 420
    Points : 174
    Points
    174
    Par défaut
    Merci pour votre aide....
    Cela marche tres bien pour savoir si le disque existe mais en faite pour savoir si il me reste de la place j'ai un ptit soucis.....
    En effet mon programme (qui est une DLL) me permet de sauvegarder le résultat d'une phase de test dans un fichier XML mais la taille de ce fichier XML m'est inconnue et varie en fonction du test effectué. Et moi je souhaiterai vérifier avant de lancer la sauvegarde de mon XML vérifier que la taille de celui-ci est inférieure à l'espace libre sur mon disque pour eviter le plantage...
    En fait existe-t-il un moyen de connaitre la taille d'un fichier avant de le sauvegarder???

    Merci d'avance
    Ps: si ca peut aider j'utilise TXmlDocument pour l'écriture de mon XML.

  6. #6
    Membre éclairé
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Points : 754
    Points
    754
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var f : file; taille : longint;
    ...
    assign(f,your file name);
    reset(f,1);
    Taille:=filesize(f);
    close(f);
    on peut aussi proteger le code avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    {$i-}
    write(f,.....):
    if ioresult <> 0 then .... // voir les diffrents codes d'eereurs possibles
     
     
    close(f);
    {$i+}

  7. #7
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 465
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 465
    Points : 4 313
    Points
    4 313
    Par défaut
    Ca doit exister, sinon tu dois pouvoir la retrouver. Sachant que les fichiers XML sont des fichiers texte, si tu connais le nombre de caractères de ton fichier, tu connais la taille (si tu connais le codage évidemment). Il doit surement y avoir des méthodes permettant de savoir le nombre de caractères dans ton objet TXMLDocument

  8. #8
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Citation Envoyé par Jayceblaster
    En fait existe-t-il un moyen de connaitre la taille d'un fichier avant de le sauvegarder???
    Eh bien, oui, forcément, vous savez à l'avance quelles données vous allez écrire dans ce fichier...

    Pour vous rassurer, vous pouvez choisir d'écrire le TXMLDocument dans un flux (TMemoryStream par exemple), regarder la taille du flux, puis l'écrire sur disque en assigant ce flux à un autre flux, comme TFileStream.

    Seul (gros) problème : si le fichier est d'une taille conséquente, vous consommez de la mémoire vive pour rien.

    Donc soit vous connaissez à l'avance la taille des données à inscrire dans le fichier, et le tour est joué, il suffit de comparer avec l'espace disque disponible (DiskFree, ou appel à l'API du système d'exploitation, cf MSDN pour Windows par exemple), soit vous tentez le coup et annoncez une erreur d'écriture si l'espace se révèle insuffisant (procédé le plus souvent mis en place dans les applications).


    @++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB6]Comment savoir si un répertoire existe
    Par pendragon dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 30/09/2016, 07h42
  2. Comment savoir si une URL existe
    Par funzynator dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 07/11/2005, 21h56
  3. comment savoir si une table existe dans la base?
    Par isa21493 dans le forum ASP
    Réponses: 6
    Dernier message: 01/09/2005, 18h09
  4. [javascript] Comment savoir si un div existe
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/08/2005, 18h13
  5. [URL] Comment savoir si une URL existe?
    Par jse dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2004, 16h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo