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

Web & réseau Delphi Discussion :

Renommer des fichiers sur un disque réseau


Sujet :

Web & réseau Delphi

  1. #1
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut Renommer des fichiers sur un disque réseau
    Salut la foule.
    Je désire renommer une série de fichiers présents sur un des disques connectés à ma Freebox ... et je n'y arrive pas.
    Depuis l'invite de commande, la fonction DOS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    REN "\\FREEBOX\DISK1\DOSSIER1\MONFICHIER.txt" "NouveauNom.txt"
    fonctionne parfaitement bien.
    J'ai donc créé un fichier RenBat.bat contenant et je tente de le lancer depuis Delphi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute(application.handle,'RUNAS',PChar('RenBat.bat'), PChar(hh),nil,sw_hide);
    hh contient "\\FREEBOX\DISK1\DOSSIER1\MONFICHIER.txt" "NouveauNom.txt"

    J'ai bien sûr essayé avec OPEN ou EXECUTE à la place de RUNAS.

    Marche pô !

    Une idée ?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    et euh...tu as essayé avec RenameFile ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  3. #3
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    et euh...tu as essayé avec RenameFile ?
    J'ai, bien entendu, commencé par là. RenameFiles avec des chemins UNC ne fonctionne pas du tout. Même si je mappe le lecteur, ça ne fonctionne pas.
    J'ai pensé à un problème de permissions. Mais même en ouvrant tous les droits, rien à faire !
    La fonction ShellExecute utilisée plus haut me retourne le code 42. Code inconnu au bataillon ! (les codes de retour de cette fonction vont de 0 à 32).

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    surprenant, RenameFile c'est juste un appel à MoveFile...

    peut-être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RenameFile('\\FREEBOX\DISK1\DOSSIER1\MONFICHIER.txt', '\\FREEBOX\DISK1\DOSSIER1\NouveauNom.txt');
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Citation Envoyé par Laskar Voir le message
    La fonction ShellExecute utilisée plus haut me retourne le code 42. Code inconnu au bataillon ! (les codes de retour de cette fonction vont de 0 à 32).

    Citation Envoyé par Microsoft
    If the function succeeds, it returns a value greater than 32.
    source
    Et 42, c'est un joli code de retour positif en forme de clin d'œil,
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  6. #6
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut Rien a faire !
    Je déterre ce sujet qui reste irrésolu.
    Il m'est impossible de renommer un fichier (a fortiori une série de fichiers) sur le disque dur de ma Freebox à partir d'une application Delphi (RenameFile).
    J'ai absolument tout essayé sans succès. Je n'ai aucune erreur mais l'opération ne se fait tout simplement pas.
    Le plus étrange dans tout ça, c'est que le fichier VBS ci-dessous fonctionne très bien si je le lance en ligne de commande ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SrcFile = Wscript.Arguments(0)
    DstFile = Wscript.Arguments(1)
     
    Set shell = CreateObject("Wscript.Shell")
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.MoveFile SrcFile , DstFile
    ... mais ne fait rien du tout si je le lance depuis Delphi avec un ShellExecute (le code retour de ce ShellExecute est 42, c'est-à-dire tout s'est bien passé !)

    Quelqu'un a-t-il une piste ?
    Merci.

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 729
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 729
    Points : 15 133
    Points
    15 133
    Par défaut
    Yep !

    Et lancer l'application Delphi depuis la ligne de commande, as-tu tenté ? Des fois c'est plus parlant.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  8. #8
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut Hourra !
    Bon ben ça y est.
    Après quatre milliards de tentatives, j'ai résolu mon problème.
    La solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
      OldName, NewName : String;
      f : File;
     
    Begin
      OldName := '\\Freebox\MonDisc\Categorie\MonFichier.avi';
      NewName := '\\Freebox\MonDisc\Categorie\NouveauNom.avi';
     
      AssignFile(f, OldName);
      Rename (f, NewName);
    end;
    Comme toujours, la solution la plus simple est la meilleure !

  9. #9
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Le dernier code provoque l'ouverture du fichier mais comme ça ne le lit pas ça doit pas être trop méchant, ne pas oublier de fermer le fichier proprement tout de même
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  10. #10
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    et que faire Rename(file) ? il fait appel à l'API MoveFile()

    sinon AssignFile n'ouvre pas le fichier, donc pas de problème
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

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

Discussions similaires

  1. [VB.NET] Comment rechercher des fichiers sur un disque.
    Par vijeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/08/2017, 10h17
  2. liste des fichiers sur un lecteur réseau
    Par Papy214 dans le forum C#
    Réponses: 2
    Dernier message: 04/11/2008, 15h48
  3. [C#] Accès à un fichier sur un disque réseau
    Par pi100 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/06/2007, 14h13
  4. Réponses: 2
    Dernier message: 19/12/2005, 20h11

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