Autor Thema: ftp-Verbindung "cacht" was das Zeug hält  (Gelesen 2558 mal)

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
ftp-Verbindung "cacht" was das Zeug hält
« am: 07.06.08 - 21:48:56 »
Hallo zusammen,

ich versuche gerade mit der ftp-Klasse etwas anzustellen.
Folgendes Problem tritt auf:

Ein Form enthält Script-Code, welcher zu einem ftp-Server verbindet und alle Dateien in einem Ordner anzeigt. Nun verändere ich über lade ich über einen ftp-Client eine neue Datei hoch und teste, ob das Form nun diese Datei auch "erkennt". Leider ist das nicht der Fall und erst ein Neustart des Notes-Clients zeigt die Dateien, wie sie aktuell auf dem ftp-Server vorhanden sind, an.

Nun mein Frage an Euch: Wie kann ich dieses "Caching" von Windows, Notes oder what ever verhindern oder umgehen?

Die ftp-Klasse verwendet folgende Funktionalität (ich glaube hier im Forum auch komplett ersichtlich, finde den Thread im Moment leider nicht):
Code
Declare Private Function FtpFindFirstFile Lib "wininet.dll" Alias "FtpFindFirstFileA" 
   (Byval hFtpSession As Long, Byval lpszSearchFile As String, lpFindFileData As WIN32_FIND_DATA, Byval dwFlags As Long, Byval dwContent As Long) As Long
Declare Private Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" 
   (Byval hFtpSession As Long, Byval lpszDirectory As String) As Integer
Declare Private Function FtpGetCurrentDirectory Lib "wininet.dll" Alias "FtpGetCurrentDirectoryA" 
   (Byval hFtpSession As Long, Byval lpszCurrentDirectory As String, lpdwCurrentDirectory As Long) As Integer
Declare Private Function FtpPutFile Lib "wininet.dll" Alias "FtpPutFileA" 
   (Byval hFtpSession As Long, Byval lpszLocalFile As String, Byval lpszRemoteFile As String, 
   Byval dwFlags As Long, Byval dwContext As Long) As Integer
Declare Private Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" 
   (Byval hFtpSession As Long, Byval lpszRemoteFile As String, Byval lpszNewFile As String, Byval fFailIfExists As Integer, Byval dwFlagsAndAttributes As Long, 
   Byval dwFlags As Long, Byval dwContext As Long) As Integer
Declare Private Function FtpDeleteFile Lib "wininet.dll" Alias "FtpDeleteFileA" 
   (Byval hFtpSession As Long, Byval lpszFileName As String) As Integer
Declare Private Function FtpCreateDirectory Lib "wininet.dll" Alias "FtpCreateDirectoryA" 
   (Byval hConnect As Long, Byval lpszDirectory As String) As Integer
Declare Private Function FtpRenameFile Lib "wininet.dll" Alias "FtpRenameFileA" 
   (Byval hConnect As Long, Byval lpszExisting As String, Byval lpszNew As String) As Integer
Declare Private Function FtpRemoveDirectory Lib "wininet.dll" Alias "FtpRemoveDirectoryA" 
   (Byval hConnect As Long, Byval lpszDirectory As String) As Integer
Declare Private Function apiInternetCloseHandle Lib "wininet.dll" Alias "InternetCloseHandle" 
   (Byval hInet As Long) As Long
Declare Private Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" 
   (Byval sAgent As String, Byval lAccessType As Long, Byval sProxyName As String, Byval sProxyBypass As String, Byval lFlags As Long) As Long
Declare Private Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" 
   (Byval hInternetSession As Long, Byval sServerName As String, Byval nServerPort As Integer, Byval sUsername As String, Byval sPassword As String, 
   Byval lService As Long, Byval lFlags As Long, Byval lContext As Long) As Long
Declare Private Function InternetFindNextFile Lib "wininet.dll" Alias "InternetFindNextFileA" 
   (Byval hFind As Long, lpvFindData As WIN32_FIND_DATA) As Long

Gruß
Alex
« Letzte Änderung: 07.06.08 - 23:43:30 von deepmessage »

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ftp-Verbindung "cacht" was das Zeug hält
« Antwort #1 am: 07.06.08 - 22:12:35 »
Hi!

1) Ein "[ code ]" (ohne Leerzeichen) um den Code herum würde das Ganze lesbarer machen.

2)
Zitat
Ein Form enthält Script-Code, welcher zu einem ftp-Server verbindet und alle Dateien in einem Ordner anzeigt. Nun verändere ich über lade ich über einen ftp-Client eine neue Datei hoch und teste, ob das Form nun diese Datei auch "erkennt". Leider ist das nicht der Fall und erst ein Neustart des Notes-Clients zeigt die Dateien, wie sie aktuell auf dem ftp-Server vorhanden sind, an.

a) Definiere "anzeigt". Wann zeigst Du wie in dem Form die Daten an, die Du über den FTP-Code geholt hast?
b) "Ein Form" hat keinen Scriptcode. Der ist entweder in einem Agenten, Button, Scriptlibrary, etc. Wo ist der Code, wann wird er wie aufgerufen?

Gruß aus(noch) Dublin.
« Letzte Änderung: 08.06.08 - 00:07:30 von m3 »
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Re: ftp-Verbindung "cacht" was das Zeug hält
« Antwort #2 am: 07.06.08 - 23:22:27 »
Schau Dir doch mal die Einstellungen bezüglich Caching an, z.B. bei getfile:

http://msdn.microsoft.com/en-us/library/aa384157(VS.85,printer).aspx

Offline deepmessage

  • Junior Mitglied
  • **
  • Beiträge: 73
Re: ftp-Verbindung "cacht" was das Zeug hält
« Antwort #3 am: 07.06.08 - 23:40:41 »
danke für die Antworten.

@m3: Ich habe meinen Code mit den Tags versehen. Was mir auffällt: Du solltest besser Quotes verwenden, denn sonst bekommt dieser Thread eine "hässliche Breite"... ;-)
Meiner Ansicht nach enthält das Design-Element "Form" Code, auch wenn dieser von mir aus in Buttons, Aktions oder Events steckt. Meine ftp-Aktionen werden einerseits über das Postopen, andererseits in einem Button aufgerufen. Es handelt sich hierbei um das Listing aller Dateien in einem Ordner. Ich verwende ein Form, da dies auch mal in den "Hintergrund" wandern kann, d. h. man kann schnell mal in andere Datenbanken wechseln, ohne dass ein laufender Agent oder eine Dialogbox dies verhindert.

Ich werde morgen die Referenz von WildVirus (vielen Dank an Dich, sieht auf den ersten Blick sehr vielversprechend aus) ansehen, und mit den Falgs von Microsoft etwas herumexperimentieren.


Gruß
Alex

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: ftp-Verbindung "cacht" was das Zeug hält
« Antwort #4 am: 08.06.08 - 00:09:23 »
s/code/quote/
Wenn die Finger was anderes machen, als der Kopf ...

Nochmals: Dass Du das Directory via FTP ausliest und dann anzeigst, ist mir schon klar. Wie Du das im Form anzeigst, wäre ev. interessant.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz