![]() |
WinInet erkennt keine .htaccess
Hallo allerseits,
FtpFindFirstFile erkennt keine Dateinamen, welche mit einem Punkt beginnen (.htaccess, etc.) Hat jemand eine Idee, wie ich trotzdem diese Dateien mit WinInet einlesen bzw. löschen kann? mfg Herbert |
Re: WinInet erkennt keine .htaccess
Sieht du denn die Datei mit andern Ftp-Clients?
Da der Windows-API generell Dateien die nur aus Extension bestehen suspekt sind würde ich mal Kompos verwenden die nicht auf die WinAPI aufsetzen. |
Re: WinInet erkennt keine .htaccess
Hallo Bernhard,
das war aber schnell. Ich schreibe hier ein FTP-Programm mit WinINet. Habe bereits ein funktionierendes FTP-Programm mit den Indys geschrieben. Wollte nur mal zum Vergleich und zum Lernen das ganze mal mit WinInet versuchen. Funktioniert auch soweit alles, bis eben auf diese Kleinigkeiten. Mit dem Indy-Programm sehe ich die .htaccess und kann sie auch ändern bzw. löschen. Trotzdem wäre es für mich interessant, das ganze auch mit WinINet hinzubekommen. mfg Herbert |
Re: WinInet erkennt keine .htaccess
Hallo, der
![]() Kannst ja mal einen Blick in die Sourcen werfen. |
Re: WinInet erkennt keine .htaccess
Moin Bernhard,
Zitat:
Man kann solche Dateien nur nicht im Explorer anlegen, was ich mal als Bug ansehen würde, denn grundsätzlich lässt das Dateisystem Datei-/Ordnernamen die mit einem Punkt beginnen zu. |
Re: WinInet erkennt keine .htaccess
Hallo Toms,
ich habe den FTP-Client von Shima jetzt probiert, auch hier werden keine Dateien, die mit einem Punkt beginnen, angezeigt. Hat noch jemand eine Idee, wie ich hier zu einer Lösung komme? mfg Herbert |
Re: WinInet erkennt keine .htaccess
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo, ich hab's mit meinem ftp getestet. Wir alles perfekt angezeigt.
Wird also nicht direkt an WinInet liegen. |
Re: WinInet erkennt keine .htaccess
Zitat:
Zitat:
Gibts bei FtpFindFirstFile evtl. nocht Einstellungen um auch Systemdateien, versteckte Dateien etc. anzuzeigen? Evtl. wird ja hier was ausgeblendet? |
Re: WinInet erkennt keine .htaccess
Ist interessant.
Woran könnte es sonst liegen? In FtpFindFirstFile sind mir keine weiteren Einstellungen bekannt. Hier ist beschrieben, wenn man als Parameter NIL übergibt, werden alle Dateien angezeigt. Gibt es vl. verschiedene .dll's (TWin32FindData), welche ja angeblich beim Internet Explorer dabei sind? mfg Herbert |
Re: WinInet erkennt keine .htaccess
Zeig doch mal ein bischen Code was du bisher machst.
|
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:17 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