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.