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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2003
    Messages : 45
    Points : 36
    Points
    36
    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 émérite Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - développeur Delphi, PHP et JS
    Inscrit en
    juin 2013
    Messages
    1 112
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

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

    Informations forums :
    Inscription : juin 2013
    Messages : 1 112
    Points : 2 356
    Points
    2 356
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2003
    Messages : 45
    Points : 36
    Points
    36
    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 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 224
    Points : 26 635
    Points
    26 635
    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
    Inscrit en
    janvier 2007
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 088
    Points : 35 603
    Points
    35 603
    Billets dans le blog
    54
    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

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

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

    Informations forums :
    Inscription : novembre 2002
    Messages : 8 224
    Points : 26 635
    Points
    26 635
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

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

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2003
    Messages : 45
    Points : 36
    Points
    36
    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
    Inscrit en
    janvier 2007
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 088
    Points : 35 603
    Points
    35 603
    Billets dans le blog
    54
    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é ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    février 2003
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2003
    Messages : 45
    Points : 36
    Points
    36
    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
    Inscrit en
    janvier 2007
    Messages
    13 088
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : janvier 2007
    Messages : 13 088
    Points : 35 603
    Points
    35 603
    Billets dans le blog
    54
    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
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

Discussions similaires

  1. Réponses: 0
    Dernier message: 23/10/2012, 22h47
  2. [AC-2010] Base qui passe en lecture seule
    Par Daejung dans le forum Sécurité
    Réponses: 2
    Dernier message: 23/12/2011, 18h17
  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, 18h04
  4. lecture seul d'un répertoire
    Par spud19 dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/10/2005, 11h08
  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, 16h05

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