Entwickler-Ecke

Dateizugriff - Findfirstproblem


drporta - Mo 19.08.02 09:01
Titel: Findfirstproblem
Hallo Delphigemeinde,
ich habe ein Problem beim Lesen von Dateien aus einem Bestimmten Verzeichnis.
Ich habe eine Routine geschrieben, die alle Dateien eines Verzeichnisses einliest, nach Datum sortiert und die jüngste Datei in ein anderes Verzeichnis kopiert.
In meiner Testumgebung lief alles einwandfrei, sobald ich den Pfad auf die Betriebsumgebung verbiege, werden keine Dateien eingelesen!
Die Testumgebung und die Betriebsumgebung liegen auf dem selben Server.

Das kuriose ist, wenn ich indem Pfad ein Unterverzeichnis anlege und aus diesem lese, ist das auch keine Problem.

Zur Übersicht meine Verzeichnisstruktur

P:\zetteltemp funktioniert
P:\zettel funktioniert nicht
P:\zettel\zetteltemp funktioniert


Ich bin ziemlich ratlos ;-)

Dirk


Tino - Mo 19.08.02 09:04

Poste doch mal den Code mit dem Du die Dateien in dem Verzeichnis suchst. Könnte uns schon ein bissel helfen :-D

Gruß
TINO


drporta - Mo 19.08.02 14:51

Hallo,
stimmt, hätte ich gleich machen sollen ;-)

Tino hat folgendes geschrieben:
Poste doch mal den Code mit dem Du die Dateien in dem Verzeichnis suchst. Könnte uns schon ein bissel helfen :-D

Gruß
TINO



Quelltext
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:
procedure TfAnthonToNolte.ReadDir;
var
  x           : Integer;
  sr          : TSearchRec;
  FileAttrs   : Integer;
  RowCount    : Integer;
  Tempstring  : String;
begin
  FileAttrs := faAnyFile;
  with StringGrid1 do
  begin
    AnzahlDateien := 0;
    RowCount := 1;
    if FindFirst(Zettelpath + '\*.stp', FileAttrs, sr) = 0 then
    begin
      repeat
        if ((sr.Attr and FileAttrs) = sr.Attr) and (sr.size > 0) then
        begin
          Cells[1,RowCount] := sr.Name;
          ZettelDatei[RowCount,1] := sr.Name;
          Cells[2,RowCount] := IntToStr(sr.Size);
          ZettelDatei[RowCount,2] := IntToStr(sr.Size);
          TempString := FormatDateTime('dd.mm.yyyy hh:nn.ss',fmyFile.GetFileDate(Zettelpath + '\' + sr.Name));
          Cells[3,RowCount] := TempString;
          ZettelDatei[RowCount,3] := TempString;
          RowCount := RowCount + 1;
        end;
      until FindNext(sr) <> 0;
      FindClose(sr);
      AnzahlDateien := RowCount - 1;
    end;
  end;
end;

wenn ich den Teil:

Quelltext
1:
2:
      if ((sr.Attr and FileAttrs) = sr.Attr) and (sr.size > 0) then
        begin

auskommentiere, dann funktioniert es.

Die Dateien werden mit auch als geöffnet angezeigt, das heisst in meiner leseroutine werden die Dateien als in Benutzung angezeigt.

Dirk