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

Réseau Discussion :

QFtp : arborescence avec isDir()


Sujet :

Réseau

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut QFtp : arborescence avec isDir()
    Salut à tous,
    Soucis qui me prend la tête, je vous explique d'abord puis je mets le code :
    Mon objectif est que lors d'un put (upload de la machine cliente au serveur FTP), l'arborescence du fichier sélectionné soit gardé. Pour cela, je veux donc créer un par un les dossiers qui n'existe pas sur le serveur. J'utilise la fonction isDir() pour connaitre si le fichier existe ou non [la fonction list() étant utilisé pour la vue QTreeView, son utilisation est donc très malvenue].
    Voici donc le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    // select path from homepath local
    QString mypathfile = file.absolutePath().trimmed();
    QRegExp rxreplace("^"+QDir::homePath());
    mypathfile.replace(rxreplace,"");
    mypathfile.replace(0,1,"");
    qDebug() << "mypathfile : " + mypathfile;
    //create tree
    foreach (QString s, mypathfile.split("/")) {
          if(!isDir(index(s))){
                 qDebug() << "pas un dir : " + s;
                 connection.mkdir(s);
          } else {
                 qDebug() << "dir : " + s;
          }
          connection.cd(s);
    }
    // upload
    UploadFile(file.absoluteFilePath());
    // reset (espace chrooté)
    connection.cd("/");
    Le traitement se passe parfaitement au premier envoie, par contre le deuxième envoi échoue dès le 2è sous-dossier. Exemple :

    1er échange (copie du fichier /home/toto/dossier/sous-dossier/sous-dossier2/fichier)
    mypathfile : /dossier/sous-dossier/sous-dossier2
    pas un dir : dossier
    pas un dir : sous-dossier
    pas un dir : sous-dossier2
    ** Le fichier est bien copié dans l'arborescence **
    2è échange (copie du fichier /home/toto/dossier/sous-dossier/sous-dossier2/fichier2)
    mypathfile : /dossier/sous-dossier/sous-dossier2
    dir : dossier
    pas un dir : sous-dossier
    pas un dir : sous-dossier2
    ** crash **
    Le crash apparaît car comme il ne comprend pas que le dossier existe déjà, il le recrée et donc crash (déjà existant).
    Je ne comprend pas comment le système au 2è échange comprend que dossier est bien un dossier mais pas pour les sous-dossiers J'espère avoir été le plus clair possible dans mon explication.
    Je précise que la fonction UploadFile fonctionne bien.

    Merci beaucoup pour votre aide.
    Dernière modification par Invité ; 06/02/2014 à 17h31. Motif: résolu

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

Discussions similaires

  1. arborescence avec lien
    Par xorax dans le forum Langage SQL
    Réponses: 2
    Dernier message: 15/11/2006, 18h53
  2. [PHP-JS] probleme arborescence avec require
    Par nicerico dans le forum Langage
    Réponses: 8
    Dernier message: 08/11/2006, 09h10
  3. Créer une arborescence avec XSL
    Par kobe dans le forum XSL/XSLT/XPATH
    Réponses: 19
    Dernier message: 13/06/2006, 09h54
  4. Réponses: 3
    Dernier message: 28/03/2006, 10h52
  5. copie d'une arborescence avec excel vb
    Par kernel57 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 18/11/2005, 08h31

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