Entwickler-Ecke

Windows API - Verzeichnis auslesen (PChar Probleme)


Lyrico - Mo 03.10.11 01:40
Titel: Verzeichnis auslesen (PChar Probleme)
Hallo leute,

Ich habe ein Problem, ich kann denn Code nicht compilieren.


Fehler Meldung:

[DCC Fehler] Func.pas(67): E2010 Inkompatible Typen: 'Cardinal' und 'PWideChar'
[DCC Warnung] Func.pas(348): W1057 Implizite String-Umwandlung von 'AnsiChar' zu 'string'



Delphi-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:
34:
35:
36:
37:
Function ListFiles(sDir: String): String;
Var
  sFileName: String;
  sFileList: String;
  sDirList: String;
  sSizeList: String;
  sRec: TWin32FindData;
  findHandle: THandle;
Begin

  If AnsiLastChar(sDir) <> '\' Then
  Begin
    sDir := sDir + '\';
  End;

  Try
    findHandle := FindFirstFile(PChar(sDir + '*.*'), sRec);

    If findHandle <> INVALID_HANDLE_VALUE Then
      Repeat
        sFileName := sRec.cFileName;

        If (sRec.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) <> 0 Then Begin
          sDirList := sDirList + sDir + sFileName + '++';
        End
        Else
        Begin
          sFileList := sFileList + sDir + sFileName + '++';
          sSizeList := sSizeList + IntToStr(GetFileSize(PChar(sDir + sFileName))) + '++';
        End;
      Until FindNextFile(findHandle, sRec) = False;
  Finally
    //FindClose(findHandle);
  End;

  Result :=  sDirList + '|' + sFileList + '|' + sSizeList;
End;



Jetzt wollte ich euch fragen wo der Fehler ist u. Warum...

Mit freundlichen grüßen

Lyrico


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mo 03.10.2011 um 12:59


Boldar - Mo 03.10.11 01:42

Und Welche Zeile ist Zeile 67?
Edit: GetFilesize get so nicht, da brauchst du ein handle.
Aber du hast doch in sRec die Dateigröße drin, schau dir das mal in der Hilfe an. Stichwort nFileSizeHigh und nFileSizeLow.
Ausserdem würde sich die Verwendung von Stringlists empfehlen.