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

  1. ###raw>post.musername###
    Nouveau membre du Club
    Tester l'existence d'un fichier sur un réseau local
    Bonjour,
    Je débute en qt et
    je n'arrive pas à trouver comment tester l'existence d'un fichier sur mon réseau local?
    Je récupère le chemin dans un fichier ini :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    QString path ="\\fichiers\monrepertoire\toto.txt";
    <--c'est ce qui est écrit dans le fichier (je le récupère en utilisant un objet QSettings)

    lorsque je teste avec
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    check_file(path);
    , l'instruction renvoie false alors que le fichier existe.
    Quand je débuge je vois que le contenu de la variable n'est pas tout à fait ce qui est écrit mon fichier ini --> "\\fichiersonrepertoire\toto.txt"

    Je suis sous windows 10 et le serveur sur lequel est stocké est un serveur windows.
    j'ai essayé de doubler tous les antislash mais le test répond toujours false.

    Pourriez vous m'aider svp
      0  0

  2. ###raw>post.musername###
    Membre chevronné
    Bonjour.

    Tu peux déjà commencer par doubles les antislashs "\\\\fichiers\\monrepertoire\\toto.txt" ou bien utiliser les raw strings si ton compilateur le permet R"(\\fichiers\monrepertoire\toto.txt)", car quand on met un \ dans une chaîne on indique au compilateur que le caractère qui suit est particulier ('\n' pour un retour à la ligne, '\t' pour une tabulation, …).
      0  0

  3. ###raw>post.musername###
    Nouveau membre du Club
    Bonjour,

    Merci pour la réponse, mais comme je l'avais dit, j'avais essayé de doubler les '\' mais ça ne marchait pas.

    Tu proposes d'utiliser les Raw string, mais comment les utiliser vu que ma donnée est issu d'un fichier ini?

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    QSettings * qsettings = new QSettings(":/resources/config/config.ini",QSettings::IniFormat);
    QString fileName= qsettings->value("INIT/file","").toString();
    QFileInfo check_file(fileName);
    bool test = check_file.exists() && check_file.isFile();
      0  0

  4. #4
    Membre éclairé
    bonjour,
    1) Qt gère les chemins avec des slashs '/' et pas avec les antislashs de windows ou win32 normalement, donc dans ton chemin mets des slashs au lieu des antislashs.
    2) je ne sais pas si QFile et QFileinfo fonctionnent sur le lan à toi de tester une fois que tu as mis des slashs.

  5. #5
    Nouveau membre du Club
    Bonjour,

    En mettant des slashs, j'ai toujours un false, donc je dois en conclure que QFile et QFileinfo ne gère pas les fichiers sur mon lan?

    Comment tester l'existence d'un fichier sur le réseau en QT c++ ?

    Merci d'avance pour vos réponses

  6. #6
    Membre éclairé
    si tu as bien mis un chemin comme
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    path="//fichiers/monrepertoire/toto.txt";
    et que cela ne detecte pas toto.txt c'est que ta machine reseau fichiers n'est peut etre pas accessible... sinon je ne voie pas trop.....

  7. #7
    Nouveau membre du Club
    Le fichier (qui est sur le réseau) est bien accessible et existe. j'ai un programme actuellement en c# qui le trouve sans problème et j'essaie de porter ce programme sur Qt c++.

  8. #8
    Membre éclairé
    tu as bien testé en faisant du debug ou en mettant un qDebug que ta variable filename contient bien le chemin ? (comme tu la reprends d'un fichier )

###raw>template_hook.ano_emploi###