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

Langage Delphi Discussion :

Impossible de créer (copier, déplacer) un fichier


Sujet :

Langage Delphi

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Impossible de créer (copier, déplacer) un fichier
    Bonjour,

    Alors que tout allait bien sous widows XP et Delphi 7, rien ne va plus sous Windows 7 et Delphi XE.

    La création d'un fichier (ou une copie de fichier) est refusée quelquesoit le répertoire (juste créé ou existant).

    Exemple :

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    unit Initiale;
     
    interface
     
      Uses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ExtCtrls,Buttons,Grids,ComCtrls,ShellAPI;
     
      Const  NbrMaxVehicules=12;
     
      Type  Ch180=String[180];
     
            TFicheInitiale=Class(TForm)
                             Panel001:TPanel;
                             Image001:TImage;
                             Panel002:TPanel;
                             Label001:TLabel;
                             Button001:TButton;
                             Button002:TButton;
                             Button003:TButton;
                             SaveDialog001:TSaveDialog;
                             Procedure FormActivate(Sender: TObject);
                             Procedure Button001Click(Sender: TObject);
                             Private
                               Procedure QuoiFaire;
                               Procedure Creation;
                             Public
                           End;
     
            RensInit=Record
                       CheminInfo,CheminParc,CheminPhotos:String;
                       FichierInfo:Ch180;
     
                       DernierNumeroDeVoiture:0..NbrMaxVehicules;
     
                     End;
     
      Var FicheInitiale:TFicheInitiale;
     
    implementation
     
    {$R *.dfm}
     
      Type Ch8=String[8];
     
           Repertoire=Ch180;
           FVEHRepertoire=File Of Repertoire;
           InfoFichier=Record
                         CheminEtNomFichier:String;
                         (*  *)
                       End;
     
     
      Var  VEHRepertoire:FVEHRepertoire;
           InfoGene:RensInit;
           PremiereUtilisation:Boolean;
           NumVoiture:0..NbrMaxVehicules;
           AnneeActuelle,MoisActuel,JourActuel:Word;
           CheminFichierIni:String;
           Bitmap:TBitmap;
     
     
      Function NomDuJour(Jour:Byte):Ch8;
         Begin
           Case Jour Of
             1:NomDuJour:='dimanche';
             2:NomDuJour:='lundi';
             3:NomDuJour:='mardi';
             4:NomDuJour:='mercredi';
             5:NomDuJour:='jeudi';
             6:NomDuJour:='vendredi';
             7:NomDuJour:='samedi';
           End;
         End;
     
      Procedure TFicheInitiale.Creation;
         Begin
           NumVoiture:=0;
           SaveDialog001.Title:='Enregistrer le fichier information sous :';
           SaveDialog001.FileName:=CheminFichierIni;
           If SaveDialog001.Execute
             Then Begin
                    InfoGene.FichierInfo:=SaveDialog001.FileName;
                    InfoGene.CheminInfo:=ExtractFileDir(SaveDialog001.FileName)+'\';
                    AssignFile(VEHRepertoire,CheminFichierIni);
                    Rewrite(VEHRepertoire);
                    Seek(VEHRepertoire,0);
                    Write(VEHRepertoire,InfoGene.FichierInfo);
                    CloseFile(VEHRepertoire);
                    CreateDir(InfoGene.CheminInfo+'Parc\');
                    InfoGene.CheminParc:=InfoGene.CheminInfo+'Parc\';
                    CreateDir(InfoGene.CheminInfo+'Parc\Photos\');
                    InfoGene.CheminPhotos:=InfoGene.CheminInfo+'Parc\Photos\';
                    InfoGene.DernierNumeroDeVoiture:=0;
                  End
             Else Begin
                    (*  *)
                  End;
         End;
     
      Procedure TFicheInitiale.Button001Click(Sender:TObject);
         Begin
           Creation;
         End;
     
      Procedure TFicheInitiale.QuoiFaire;
         Begin
           FicheInitiale.Width:=729;
           FicheInitiale.ClientWidth:=723;
           FicheInitiale.Height:=482;
           FicheInitiale.ClientHeight:=454;
           Panel001.Align:=alClient;
           Button001.Enabled:=True;
           Button002.Enabled:=True;
           Button003.Enabled:=True;
           Panel001.Visible:=True;
           If Button001.Default=True Then Button001.SetFocus
                                     Else If Button002.Default=True Then Button002.SetFocus
                                                                    Else Button003.SetFocus;
         End;
     
      Procedure TFicheInitiale.FormActivate(Sender:TObject);
        var WinDir:array[0..255] of Char;
         Begin
           Bitmap:=TBitmap.Create;
           DecodeDate(Now,AnneeActuelle,MoisActuel,JourActuel);
           FicheInitiale.Caption:='  Suivi de l''entretien des véhicules   ('+NomDuJour(DayOfWeek(Now))+' '+DateToStr(Now)+')';
           GetWindowsDirectory(WinDir,SizeOf(WinDir));
           CheminFichierIni:=WinDir+'\SuiviEntretienVéhicules.Inf';
           AssignFile(VEHRepertoire,CheminFichierIni);
           (*$I-*)
           Reset(VEHRepertoire);
           (*$I+*)
           If ioresult<>0 then Begin
                                 PremiereUtilisation:=True;
                                 Button002.Default:=True;
                                 QuoiFaire;
                               End
                          Else Begin
                                 (*  *)
                               End;
         End;
     
    End.
    Je reçois systématiquement la même erreur : "Accès au ficier refusé.".


    Merci.

  2. #2
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SaveDialog001.FileName:=CheminFichierIni;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CheminFichierIni:=WinDir+'\SuiviEntretienVéhicules.Inf';
    A première vu, Windows 7, n'accepte pas qu'on écrive dans les répertoires systems. Je n'ai pas forcément tout compris mais je commencerai la recherche de cause par là.

    Cordialement

    André

  3. #3
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 706
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 706
    Points : 5 326
    Points
    5 326
    Par défaut
    C'est toujours pareil avec Vista ou supérieur : Aucune modifications dans les répertoires systèmes sans autorisation !

    Plusieurs solutions :
    - Ne pas écrire dans "C:\Windows" mais dans "C:\Users\popo\AppData\Local\VirtualStore\Windows"
    - Exécuter le programme en mode administrateur (clic droit > Exécuter en tant qu'administrateur)
    - Elever les priviliges de l'utilisateur lorsque c'est nécessaire.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/01/2009, 21h26
  2. [WinForms]Impossible de créer un fichier déjà existant.
    Par LeNeutrino dans le forum Windows Forms
    Réponses: 4
    Dernier message: 04/12/2006, 13h05
  3. Réponses: 1
    Dernier message: 14/12/2005, 01h46
  4. Fichier MDE - Impossible de créer
    Par crapouye dans le forum Access
    Réponses: 6
    Dernier message: 02/12/2005, 13h25
  5. :?: Dialogue explorer pour copier/déplacer un fichier
    Par Don Quiche dans le forum Windows
    Réponses: 5
    Dernier message: 09/07/2004, 18h49

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