![]() |
Re: WinInet erkennt keine .htaccess
Hier ein kleiner Ausschnitt des relevanten Codes:
Delphi-Quellcode:
Wie gesagt, es werden sämtliche Verzeichnisse und Dateien ordnungsgemäß in fn eingelesen, außer es handelt sich um einen Dateinamen, welcher mit einem Punkt beginnt. In diesem Falle ist der String fn leer.
procedure Tfmain.LoescheVerz(Path: String);
var hSearch : HINTERNET; findData: TWin32FindData; fn: string; begin hSearch := FtpFindFirstFile(hConnect, PChar(Path), findData, 0, 0); repeat fn := findData.cFileName; // Wenn es sich um einen Dateinamen, welcher mit einem Punkt beginnt, handelt // ist fn leer. if findData.dwFileAttributes = FILE_ATTRIBUTE_DIRECTORY then begin mfg Herbert |
Re: WinInet erkennt keine .htaccess
So wie es aussieht, dürfte es hier wirklich keine Lösung geben.
Schade - somit kann ich WinInet wohl für mein Vorhaben nicht verwenden, was ich zwar fast nicht glauben kann, da die DLL von Microsoft kommt (oder funktioniert es vl. gerade deswegen nicht). Wie könnte ich sonst noch (ohne Indy) alle Server-Dateien einlesen ??? Hat denn wirklich niemand eine Idee, wie es vl. doch mit WinInet funktionieren könnte? Hier nochmals meine Ergebnisse: Gegeben ist: Im Server-Verzeichnis steht (nur mehr) eine einzige Datei mit dem Namen .htaccess Sobald ich folgende Zeile aufrufe:
Delphi-Quellcode:
enthält der Wert von hSearch den Wert NIL und GetLastError hat den Wert 18
hSearch := FtpFindFirstFile(hConnect, PChar(Path), findData, 0, 0);
Es wird also überhaupt nicht erkannt, dass hier noch eine Datei im Verzeichnis liegt. Vielleicht hat doch noch jemand eine Idee. mfg Herbert |
Re: WinInet erkennt keine .htaccess
Hallo, vielleicht liefert
![]() Zitat:
|
Re: WinInet erkennt keine .htaccess
Synapse, ICS, ...
|
Re: WinInet erkennt keine .htaccess
Hallo Herbert,
beim Forschen in meinem Archiv bin ich auf Code gestoßen, den ich für deinen Thread von ![]()
Delphi-Quellcode:
Damit finde ich auch .htaccess - du bestimmt auch. Stelle mal ein minimales Demo-Projekt bereit, dann lässt sich dein Problem bestimmt eingrenzen.
uses
WinInet; function FtpGetFiles(hInet: HInternet; user, password, server, localDir, remoteDir: String): Boolean; var fd: TWin32FindData; hSession, hSearch: HINTERNET; begin Result := False; hSession := InternetConnect(hInet, PChar(server), 21, PChar(user), PChar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0 ); if Assigned(hSession) then begin if not FtpSetCurrentDirectory(hSession, PChar(remoteDir)) then Exit; localDir := IncludeTrailingPathDelimiter(localDir); if not DirectoryExists(localDir) then MkDir(localDir); ChDir(localDir); hSearch := FtpFindFirstFile(hSession, nil, fd, 0, 0); if Assigned(hSearch) then begin Result := True; repeat if (fd.dwFileAttributes and FILE_ATTRIBUTE_DIRECTORY = 0) then Result := FtpGetFile(hSession, fd.cFileName, PChar(localDir + fd.cFileName), False, 64, FTP_TRANSFER_TYPE_UNKNOWN, 0 ) else if Pos(fd.cFileName, '..') = 0 then Result := FtpGetFiles(hInet, user, password, server, localDir + fd.cFileName, remoteDir + fd.cFileName ); until not (Result and InternetFindNextFile(hSearch, @fd)); InternetCloseHandle(hSearch); end; InternetCloseHandle(hSession); end; end; procedure Test; var hInet: HINTERNET; begin hInet := InternetOpen('Test', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0); if Assigned(hInet) then try FTPGetFiles(hInet, 'herbert', 'toppsigrid', 'localhost', 'c:\temp\hsbc\', '/hsbc/'); finally InternetCloseHandle(hInet); end; end; Freundliche Grüße |
Re: WinInet erkennt keine .htaccess
Hallo marabu,
vielen Dank vorerst mal für dein Demo-Programm. Du wirst es nicht glauben, auch hier funktioniert alles einwandfrei, nur Dateien, welche mit einem Punkt beginnen, werden ebenfalls nicht erkannt bzw. heruntergeladen. Ich habe mir zum Vergleich meine funktionierende Indy-Application angesehen. Bei Indy muss ich folgendes eingeben:
Delphi-Quellcode:
wenn ich das '-a' durch '*.*' ersetze, werden ebenfalls keine .-Dateien mehr gefunden.
IdFTP.List(sl, '-a', true);
Nachdem deine Demo bei dir ja zum Erfolg führt, bin ich mir langsam aber sicher nicht mehr ganz im Klaren, ob hier bei mir nicht andere Faktoren mit im Spiel sind, nur halt welche. Ich kann gerne ein Mini-Demo meinerseits bereitstellen, aber nachdem dein Demo bei mir ebenfalls keine .-Dateien findet, muss es wohl wo anders liegen. mfg Herbert |
Re: WinInet erkennt keine .htaccess
So, jetzt bin ich nochmal da.
Habe einfach mal probiert und den Parameter -a auch bei FtpFindFirstFile eingebegen:
Delphi-Quellcode:
und siehe da, jetzt werden auch Punkt-Dateien angezeigt.
hSearch := FtpFindFirstFile(hSession, PChar('-a'), fd, 0, 0);
Wie kann das sein, nirgend wo dokumentiert. Was hat dieses '-a' eigentlich auf sich? mfg Herbert |
Re: WinInet erkennt keine .htaccess
Weist die CLI an auch versteckte Dateien anzuzeigen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz