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

Delphi Discussion :

Aide pour renommer un dossier en utilisant Delphi - Erreur "Accès refusé"


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 452
    Points : 35
    Points
    35
    Par défaut Aide pour renommer un dossier en utilisant Delphi - Erreur "Accès refusé"
    Bonjour à tous,

    Je cherche à renommer un dossier en utilisant Delphi selon la valeur de Edit1 pour le nom actuel du dossier et Edit2 pour le nouveau nom. Voici le code que j'ai utilisé, mais il me retourne un message d'erreur : "Erreur lors du renommage du dossier : Accès refusé".


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure RenameFolder(const OldName, NewName: string);
    begin
      if not MoveFileEx(PChar(OldName), PChar(NewName), MOVEFILE_COPY_ALLOWED or MOVEFILE_WRITE_THROUGH) then
      begin
        ShowMessage('Erreur lors du renommage du dossier : ' + SysErrorMessage(GetLastError));
      end
      else
      begin
        ShowMessage('Le dossier a été renommé avec succès.');
      end;
    end;

  2. #2
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 133
    Points : 5 860
    Points
    5 860
    Par défaut
    Sans doute un problème de droits d'accès, ou plus simplement il y a des fichiers ouverts par ailleurs dans ce dossier

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 097
    Points : 41 081
    Points
    41 081
    Billets dans le blog
    62
    Par défaut
    [Edit] suite à coupure internet grillé par l'autre sergio

    Version de Delphi (pour rappel)
    Version de Windows, à cause de présence ou non de l'UAC
    • Le programme a-t-il été testé en le lançant en mode administrateur (si Windows >= W98, avec vous, on ne sait jamais, déjà que vous restez D7 !)
    • Des fichiers peuvent être ouverts
    • l'existence de la destination ?

    Perso, j'aurais plutôt utilisé ou du moins testé avec la commande DOS MOVE oldfolder newfolder qu'une API et vous ne dites pas s'il s'agit de nom long ou pas, N.B. Tfile.Move n'existe pas en D7 (il l'est en tout cas dans les versions récentes) mais renamefile fait partie de SysUtils

    Vous devriez lire ceci https://learn.microsoft.com/fr-fr/wi...ectedfrom=MSDN et peut-être penser à cette syntaxe pour les noms de répertoire



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    olddir:='\\?\D:\invalid_dir.'; // vu au hasard des recherches 
     newdir:='\\?\D:\invalid_dir.fixed'; // vu au hasard des recherches
    if renamefile(olddir,newdir)
      then ShowMessage('Le dossier a été renommé avec succès.')
      else  ShowMessage('Erreur lors du renommage du dossier : ' + SysErrorMessage(GetLastError));
    Chose importante que vous ne nous indiquez pas non plus : les noms utilisés !
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Expert confirmé Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 133
    Points : 5 860
    Points
    5 860
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    [Edit] suite à coupure internet grillé par l'autre sergio

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2018
    Messages
    452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2018
    Messages : 452
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par sergio_is_back Voir le message
    Sans doute un problème de droits d'accès, ou plus simplement il y a des fichiers ouverts par ailleurs dans ce dossier
    Effectivement le fichier était ouvert
    Merci beacoup

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

Discussions similaires

  1. Aide pour traduction DLL de C++ vers Delphi
    Par Pierre95 dans le forum Langage
    Réponses: 10
    Dernier message: 11/11/2008, 21h02
  2. Petite aide pour que mon appli soit utilisable via un VPN
    Par FredericB dans le forum C++Builder
    Réponses: 0
    Dernier message: 23/09/2007, 18h12
  3. Aide pour renommer fichiers avec .bat
    Par bobsapp dans le forum Windows
    Réponses: 6
    Dernier message: 21/03/2007, 13h11
  4. Probleme pour renommer un dossier
    Par blondelle dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/09/2006, 23h07
  5. Aide pour protéger un logiciel creer par delphi
    Par osma_1978 dans le forum Delphi
    Réponses: 2
    Dernier message: 02/09/2006, 22h50

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