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

Composants FMX Delphi Discussion :

Le répertoire créé passe en lecture seule


Sujet :

Composants FMX Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut Le répertoire créé passe en lecture seule
    Bonjour à tous,

    J'utilise ce code tout simple pour créer un répertoire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      DirPath := System.IOUtils.TPath.Combine(System.IOUtils.TPath.GetDocumentsPath, 'DirName');
      TDirectory.CreateDirectory(DirPath);
    Cela fonctionne très bien, mais sur certains PC sous Windows 10, le répertoire créé passe en lecture seule.
    Impossible d'écrire un fichier dans ce cas.
    À votre avis, pour quelle raison cette anomalie survient-elle ?

  2. #2
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par jbrg Voir le message
    À votre avis, pour quelle raison cette anomalie survient-elle ?
    J'hésite entre Microsoft, Windows et 20H2 buguée !
    (plus sérieusement, Microsoft me gonfle de plus en plus à chaque mise à jour de son OS à faire des trucs différents entre deux ordinateurs et installer des saloperies plus ou moins liées à d'autres appareils comme sa Xbox dont nos PC deviennent l'annexe)

    Ceci dit, sais-tu quelles versions de Windows (niveau de mise à jour) sont impactées ?

    Ont-ils un antivirus ou logiciel de protection particulier ?

    Sur quelle version de Delphi es-tu ?

    Est-ce que le problème est récent ou on te l'a déjà remonté il y a quelques temps ?

    (je crois me souvenir d'avoir déjà vu passer quelque chose ici à ce sujet, mais peut-être que c'est ce message que j'avais déjà vu dans quelques jours)

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    C'est Windows 10 Home, version 20H2, build 19042.867
    Je compile avec Delphi 10.4.1

  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 430
    Points
    28 430
    Par défaut
    Alors je n'ai pas la réponse, mais j'ai constaté ce problème sur le W10 d'un client

    le répertoire Documents était un lecture seule mais uniquement pour les applications 32Bits (dont Delphi)

    le problème a été résolu en déplaçant le répertoire Documents.

    Dans l'explorateur de fichier, clic droit sur Documents, Propriétés et onglet Emplacement.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    J'ai effectivement eu le même problème avec un utilisateur. Ma déduction finale fut que celui-ci n'avait pas le niveau administrateur sur son poste, je ne sais si c'était la bonne, mais j'avais pu constaté que si l'utilisateur lançait le programme en tant qu'administrateur cela passait.

    Toujours est-il que j'ai exposé une solution, pour forcer l'écriture, quelque part dans ce forum mais où ?

    j'ai retrouvé dans mes sources ceci
    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
     
    uses  
         {$IFDEF MSWINDOWS}
         WinApi.Windows, WinApi.ShellApi,
         {$ENDIF}....;
     
    const   ACLPath = 'c';
     
     
    ininame:=TPath.Combine(TPath.GetPublicPath,'Lug');
    if not DirectoryExists(ininame)  then
     begin
       ForceDirectories(ininame);
       {$IFDEF MSWINDOWS}
       // droit d'accès
           ACLParams := '"'+iniName+'" /grant *S-1-5-32-545:(OI)(CI)F /t';
           ShellExecute(0, 'open', PChar(ACLPath), PChar(ACLParams), nil, SW_HIDE);
       {$ENDIF}
     end;
    tout en n'étant pas sûr à 100% que cela fonctionne.

    Une fois retrouvé le mot clé (ACL) j'ai retrouvé mon post https://www.developpez.net/forums/d2.../#post11422037


    en faisant quelques recherches supplémentaires, ce matin, je suis tombé sur ce dépot https://github.com/eversonturossi/de...a%20como%20adm qui pourrait être intéressant
    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

  6. #6
    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 430
    Points
    28 430
    Par défaut
    non, dans mon cas, Admin ou pas ça ne changeait strictement rien.

    dans l'explorateur Windows aucun soucis pour faire quoi que ce soit, j'ai lancé les quelques applis 32bits que j'avais sous la main et qui permettait d'ouvrir une boite de dialogue d'accès fichier, et dans ce contexte impossible de créer un répertoire dans Documents. Mais aucun problème avec des applis 64bits.

    comme le problème a été réglé en déplaçant le répertoire Documents je n'ai pas poussé les investigations plus loin, mais c'était très étrange.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Merci Sergio, je vais tester ta solution. Je vous informerai du résultat.

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Bonjour à tous.
    La solution proposée n'a pas fonctionné.
    Je pense que cela est dû à une mauvaise configuration du compte utilisateur.
    Je n'ai pas réussi à reproduire ce défaut sur ma machine de test.

  9. #9
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,
    Citation Envoyé par jbrg Voir le message
    La solution proposée n'a pas fonctionné.
    Je crois que c'est parce que je n'ai pas indiqué le chemin de ACL

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const   ACLPath = 'icacls'; // pas 'c' comme je l'avais indiqué
    mais peut-être était-ce corrigé ?
    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

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 46
    Points
    46
    Par défaut
    Merci Sergio,
    Mais je l'avais déjà corrigé.
    Malgré tout, cela n'a pas fonctionné.
    Le même message d'erreur apparaît qui dit que le répertoire créé n'est pas accessible "Error : Access is denied"

  11. #11
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par jbrg Voir le message
    Je pense que cela est dû à une mauvaise configuration du compte utilisateur.
    Oui, c'est ça. Sur le poste qui me préoccupait, cela fonctionnait si le programme était lancé en mode administrateur. Il y avait des choses étranges sur ce dernier. Le disque vait été changé, les répertoires utilisateurs recopiés "tel quels" sur le nouveau disque, étrangement il y avait une sorte de verrou sur le répertoire de cet utilisateur. D'où l'opération icacls qui l'avait débloqué et mon idée de le mettre en code au cas où cela arriverait sur un autre poste. Je n'ai jamais, bien sûr, retrouvé d'autre poste avec ce souci donc pas de test possible
    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

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/10/2012, 23h47
  2. [AC-2010] Base qui passe en lecture seule
    Par Daejung dans le forum Sécurité
    Réponses: 2
    Dernier message: 23/12/2011, 19h17
  3. impossible de decocher la lecture seule d'un répertoire
    Par cdevl32 dans le forum Windows Vista
    Réponses: 0
    Dernier message: 19/04/2009, 19h04
  4. lecture seul d'un répertoire
    Par spud19 dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/10/2005, 12h08
  5. Comment savoir si un fichier/répertoire est en lecture seule
    Par Guigui_ dans le forum Général Python
    Réponses: 3
    Dernier message: 29/12/2004, 17h05

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