Partage
  • Partager sur Facebook
  • Partager sur Twitter

créer un dossier pour copier des fichiers

bureau => document

Sujet résolu
    5 mars 2010 à 14:06:56

    Salut à tous,

    Je dois faire un ptit script permettant de créer un dossier (ex:toto) dans le dossier "Mes documents":
    Je fais cela:
    fso = new ActiveXObject("Scripting.FileSystemObject")
       // Création de dossier
           fso.CreateFolder("C:\Documents and Settings\JEAN\My Documents\toto")
    


    Mais cela me donne cette erreur:
    htmlfile: Nom inconnu.

    Pouvez vous m'éclairer sur la facon de procéder?

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      5 mars 2010 à 14:22:36

      Salut!

      Je ne suis sur de rien, mais je crois que les chemins se marquent avec des slashs (/), pas avec des anti-slash (\)...

      Je ne connais pas les fonctions pour gérer les répertoires en js, si l'erreur ne viens pas des anti-slashs alors je ne vois pas :'(
      • Partager sur Facebook
      • Partager sur Twitter
        5 mars 2010 à 14:25:45

        Apparemment, il faut que tu échappes tes backslashes ;)

        fso.CreateFolder("C:\\Documents and Settings\\JEAN\\My Documents\\toto");
        
        • Partager sur Facebook
        • Partager sur Twitter
          5 mars 2010 à 14:26:15

          bonjour à toutes et à tous

          redgable++

          fso.CreateFolder("C:/Documents and Settings/JEAN/My Documents/toto")
          
          ou
          fso.CreateFolder("C:\\Documents and Settings\\JEAN\\My Documents\\toto")
          


          de nos jours, d'une manière différente, on peut
          faire la même chose avec Fx.

          @+

          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2010 à 10:32:50

            Merci.
            Bon voila un bout de mon code qui peut vous être utile, je fais une boucle dans un tableau qui possede le nom des fichiers à copier:
            //On va lancer le script permettant de copier les fichier
                  fso = new ActiveXObject("Scripting.FileSystemObject")
            
                  // Si le dossier data existe
                  if (fso.FolderExists("C:\\data")) {
            
            
                      for (var intLigne = 1; intLigne < tabdata.length; intLigne++) {
                           mstrLigneCellule = tabdata[intLigne]; //tableau
                           mdecompCellule = mstrLigneCellule.split(';');
                           var source = "C:\\Documents and Settings\\JEAN\\My Documents\\toto\\" + mdecompCellule[4];  // mdecompCellule[4] possede le nom de fichier
                           var destination = "C:\\data\\";
                          
                              // Déplacement de dossier
                              //pour connaitre la destination clique droit, source url disque
                              //fso.MoveFolder(source, destination)
                              // Copie de dossier
                              //fso.CopyFolder(source, destination)
            
                              // Déplacement de fichier
                              //fso.MoveFile(source, destination)
            
                              // Copie de fichier
                              fso.CopyFile(source, destination)
                            
                          }
            
                  }
                  else {
                 // Sinon Création de dossier
                  fso.CreateFolder("C:\\data");
            
                       //Puis on remet le code copier/coller
                  }
            


            C'est kdo!
            • Partager sur Facebook
            • Partager sur Twitter
              9 mars 2010 à 11:16:33

              Tu sais que ça ne marchera que avec IE ?
              Et que c'est pas du JavaScript mais du JScript ?
              Et pour ta boucle for :
              for (var intLigne = 1; intLigne < tabdata.length; intLigne++) {
              

              ça va recalculer le length à chaque passage donc il faut mieux faire :
              for (var intLigne = 1, length = tabdata.length; intLigne < length; ++intLigne) {
              
              • Partager sur Facebook
              • Partager sur Twitter
                9 mars 2010 à 11:35:24

                Oui je sais, mais vu que la charte est seulement pour IE...
                En ce qui concerne ta boucle, je suis pas d'accord.
                Vu que l'on incrémente la variable intLigne ça ne pose aucun souci, mais merci quand même.

                Si quelqu'un peut ajouter le code pour que cela marche avc tous les navigateurs qu'il n'hésite pas!! :-°
                • Partager sur Facebook
                • Partager sur Twitter
                  9 mars 2010 à 11:56:42

                  Pourquoi la boucle part de 1 ? o_O

                  Citation : max33370

                  En ce qui concerne ta boucle, je suis pas d'accord.



                  Il a pourtant raison. C'est un infime détail qui ne provoque de différence qu'avec un grand nombre d'itération.

                  Mais c'est vrai. Et donc il est conseillé de faire comme xavier a montré.


                  EDIT : max, si ton problème est résolu, pense à l'indiquer à l'aide du bouton. ;)
                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 mars 2010 à 8:04:08

                    Oui vous parlez de performance, il est mieux d'affecter la valeur total dans une variable plutôt que de la recalculer à chaque boucle grace à la fonction length!

                    Citation

                    Citation : Golmote


                    Pourquoi la boucle part de 1 ?



                    Parceque la ligne 0 c'est la ligne de mes entêtes.

                    • Partager sur Facebook
                    • Partager sur Twitter

                    créer un dossier pour copier des fichiers

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown