Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1322 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [Win32] Wininet : savoir si un fichier existe ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Win32] Wininet : savoir si un fichier existe ?

n°276556
HelloWorld
Salut tout le monde!
Posté le 27-12-2002 à 17:33:50  profilanswer
 

Salut à tous !
Je suis en train de coder un petit soft genre aspirateur de pages web, pour cela j'utilise les fonctions de wininet : InternetOpenUrl, HttpQueryInfo, InternetReadFile, ...
Ca marche plutot bien. Mais j'ai un petit soucis : c'est si l'utilisateur entre un lien non valide.
En effet, j'ai testé le download d'adresses genre un répertoire ou une page inexistante, et mon code est incapable de détecter une erreur, vu que le serveur lui envoit une page genre "erreur 404 file does not exist" ou "Directory Listing Denied".
De même, quand je donne une adresse de site a telecharger, j'obtiens bien le telechargement de la page index.htm ou default.htm s'il y a, mais je ne sais pas récupérer le nom de celle-ci.
ex : j'entre l'url www.pouf.com
il me telecharge www.pouf.com/index.htm
mais je ne sais pas que cette page s'appelle comme ca !
pour l'instant, je magouille en appelant la page index.htm si aucun nom de page n'est fourni :o)
Comment faire pour tester si une page existe ou pas ?
Et quelle est la difference entre utiliser InternetOpenUrl, HttpQueryInfo, InternetReadFile et HttpOpenRequest avec comme parametre "GET" ou autre ... :??:  
merci a vous.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
mood
Publicité
Posté le 27-12-2002 à 17:33:50  profilanswer
 

n°276621
*syl*
--> []
Posté le 27-12-2002 à 19:32:34  profilanswer
 

Je pense pas que tu puisses savoir si un lien fonctionne rééllement puisque pour le savoir faut regarder l'entête de la réponse pour voir le code de retour 404 mais vu que des fois c'est remplacé par un code 302 accompagné d'une redirection, c'est mort.. :(

n°276625
gatorette
Posté le 27-12-2002 à 19:37:25  profilanswer
 

Avec la fonction httpqueryinfo, ça marche pas ?


---------------
each day I don't die is cheating
n°276695
HelloWorld
Salut tout le monde!
Posté le 27-12-2002 à 22:31:58  profilanswer
 

Ben oui en fait c'est avec la fonction HttpQueryInfo.
Mais j'avais pas fait gaffe a toutes les requetes possibles.
http://msdn.microsoft.com/library/ [...] _flags.asp
D'ailleurs, la mojorité ne fonctionnent pas :??: :fou:
 
Pour la soluce, on peut soit faire comme dit *Syl* : s'eplucher a la mano les champs des headers retournee par la requete HTTP_QUERY_RAW_HEADERS_CRLF, soit utiliser HTTP_QUERY_STATUS_CODE et regarder le code retourné, qui donc peut etre un de ceux la :
http://msdn.microsoft.com/library/ [...] _codes.asp
 
Bon ca marche, merci à vous !


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1716933
yolas22
Posté le 13-04-2008 à 12:58:38  profilanswer
 

Salut,  
Voyant que le sujet à déja été évoqué j'utilise se topic pour poser ma question.  
le HttpQueryInfo ne fonctionne pas avec la requête HTTP_QUERY_CONTENT_LENGTH je ne comprend pas pourquoi,  
je peux télécharger le fichier ... mais pas moyen de recupérér la taille du fichier distant la fonction me renvoie false.
Je me suis dit que j'aller tester HTTP_QUERY_RAW_HEADERS_CRLF.  
J'ai en code retour true et rien dans le buffer qui devait être affecté.  
 
Est-il possible qu'il n'y ai rien dans le header ?
 
Si quelqu'un a une idée.
Merci.


Message édité par yolas22 le 13-04-2008 à 12:59:12

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [Win32] Wininet : savoir si un fichier existe ?

 

Sujets relatifs
Convertir un fichier au format binhexmettre les donné d'un fichier texte dans un bdd
[VC++ WIN32] Comment recuperer l adresse IP d'une interface reseau ?[JBuilder]Ajouter un fichier PDF à la webapp (dans le .war)
probleme pour retirer le chemin d'un fichierGestion de fichier et analyse de ligne en C
[Perl] utilisez un fichier de configuration[PHP] appel et modification d'un fichier texte dans une page php
[Edition de fichier] j'ai des "^@" intercalés partout > Unicode ?comment transformer un fichier .max de 3d studio max en fichier .ase ?
Plus de sujets relatifs à : [Win32] Wininet : savoir si un fichier existe ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR