Probleme mit Dateizugriff nach downloaden

hi
vor kurzem hab ichs (mit etwas hilfe :wink:) geschafft dateien von einem ftp-server herunterzuladen
das allein funktioniert prima
aber wenn ich versuche eine datei gleich im anschluss zu öffnen (Open … for … as …) kommt ein „Zugriff verweigert“ das geht soweit das ich diese datei erst von der hd löschen kann nachdem ich scandisk ausgeführt habe

nun gut ich dachte dabei an einen konflikt zwischen Open … usw. und der prozedur in der die datei auf die hd geschrieben wird (nicht selbst geschrieben): (hier verkürzt)

hFile = apiCreateFile(mstrDestination, _
GENERIC_READ Or GENERIC_WRITE, _
0&, 0&, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0&amp:wink:
If hFile = INVALID_HANDLE_VALUE Then err.Raise conERR_GENERIC

'Read in MAX_CHUNK Chunk
Do
ReDim abytData(MAX_CHUNK)
lngRet = apiInetReadFile(hFTP, _
abytData(0), _
MAX_CHUNK, _
lngBytesRead)
Call apiWriteFile(hFile, abytData(0), MAX_CHUNK, _
lngBytesWritten, 0&amp:wink:
lngTotalBytesWritten = lngTotalBytesWritten + lngBytesWritten
'Call SysCmd(acSysCmdUpdateMeter, CInt(lngTotalBytesWritten / mlngSize))
Loop Until lngRet 0 And lngBytesRead = 0

das seltsame dabei: der Zugriff wird verweigert bevor der programmablauf in die nähe von Open… usw. kommt
sobald ich das Open… usw. auskommentierte kam es nicht zu „Zugriff verweigert“ jeder versuch den programmablauf zu verzögern scheiterte.
(der code oben steht mit in einer recht umfangreichen class) der code mit Open…usw. in in einer einer eigenen prozedur

ich bin in dieser sache ziemlich ratlos und bin für jede hilfe dankbar
tia

mfg luemmel

Hallo luemmel

wird (nicht selbst geschrieben): (hier verkürzt)

hFile = apiCreateFile(mstrDestination, _
GENERIC_READ Or GENERIC_WRITE, _
0&, 0&, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0&amp:wink:
If hFile = INVALID_HANDLE_VALUE Then err.Raise
conERR_GENERIC

'Read in MAX_CHUNK Chunk
Do
ReDim abytData(MAX_CHUNK)
lngRet = apiInetReadFile(hFTP, _
abytData(0), _
MAX_CHUNK, _
lngBytesRead)
Call apiWriteFile(hFile, abytData(0), MAX_CHUNK, _
lngBytesWritten, 0&amp:wink:
lngTotalBytesWritten = lngTotalBytesWritten +
lngBytesWritten
'Call SysCmd(acSysCmdUpdateMeter,
CInt(lngTotalBytesWritten / mlngSize))
Loop Until lngRet 0 And lngBytesRead = 0

Wo ist hier der CLOSE ???

apiCreateFile() entspricht einem normalen OPEN(), mit speziellen eigenschaften. Nach dem LOOP müsste ein
„Call apiCloseFile(hFile)“ folgen bevor du ein Open mit der gleichen Datei machen kannst.

das seltsame dabei: der Zugriff wird verweigert bevor der
programmablauf in die nähe von Open… usw. kommt
sobald ich das Open… usw. auskommentierte kam es nicht zu
„Zugriff verweigert“ jeder versuch den programmablauf zu
verzögern scheiterte.

VB optimiert halt den Code und deshalb ist die abgearbeitete Reihenfolge nicht immer identisch mit der programmierten.

(der code oben steht mit in einer recht umfangreichen class)
der code mit Open…usw. in in einer einer eigenen prozedur

MfG Peter(TOO)

DANKE
Hi Peter
Wow :wink:
habs noch nich ausprobiert
aber das kling richtig logisch :smile:
danke

mfg Luemmel