URLDownloadToFile klappt nicht

pepsi_gx

Erfahrenes Mitglied
Hallo,

so ein Programmstück habe ich:
C++:
 #include "stdafx.h"
#include <windows.h>
#include <urlmon.h>
#include <stdio.h>
#pragma comment(lib, "urlmon.lib")

int main(int argc, char* argv[])
{
 	char path[150];
                     strcpy(path, "FilePath\\FileName.txt");
 	
                     URLDownloadToFile(NULL, "http://test.de/", path, NULL, NULL);
                     return 0;
}

Wenn ich die Funktion ausprobiere, geht sie manchmal, aber nicht immer.
z.B. bie strcpy(path, "d:\\Filename.txt") geht und die Datei "Filename.txt" existiert auch im angegebenen Ordner,
während bei strcpy(path, "c:\\Documents and Settings\\Username\\Desktop\\17x.1x.4x.x\\filename.txt") zwar geht, aber ich finde die Datei im angegebenen Ordner nicht.

Woran kann es liegen? Der Rückgabewert macht keinen Sinn, weil URLDownloadToFile keinen Fehler findet.
Oder liegt es an dem Schreibrecht des Ordners?
 
Moin,

eine kurze :google:-Suche nach der Funktion ergab dies:
http://www.vb-magazin.de/forums/forums/p/967/3582.aspx ;-]

Vlt. hilft Dir das ja weiter .....

gruß
Klaus
Danke für die schnelle Antwort!

Zuerst hat es mich überrascht, da es geht um PictureBox in VB!:suspekt:

Aber wenn ich bissel runterrolle, sehe ich schon, was du meinst.;)

Leider hat es mir wenig geholfen, weil wie gepostet die Funktion geht schon, nur manchmal schreibt sie nicht die Html-Seite in die Datei, egal ob die Datei schon existiert(wenn schon existiert, wird sie dann überschrieben).

Die Frage bleibt noch, wann schreibt sie in Datei, wann nicht?(vorausgesetzt, die Funktion liefert schon keinen Fehler zurück)
 
Hallo,

Wenn du auf nummersicher gehen willst was den größten Teil des Dateinamens angeht, probiere mal dies:

C++:
char UserPath[MAX_PATH];
char FileBuf[MAX_PATH*2];
SHGetSpecialFolderPathA(NULL,UserPath, CSIDL_PROFILE,  1);
sprintf(FileBuf, "%s\\DeineDateiName.xxx", UserPath);

Du kanst auch CSIDL_PROFILE gegen andere Werte austauschen, z.B. CSIDL_DESKTOP (müsste so richtig sein). Dann erhälst du direkt den Pfad zum Desktop des aktuellen Benutzters.

Ich hoffe das Hilft.

Gruß
Anfänger

Edit:
Sorry vergessen. Diese Dateien musst du linken / includen:
shell32.lib
shlobj.h
 
Zuletzt bearbeitet von einem Moderator:
Zurück