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

  FORUM HardWare.fr
  Programmation
  ASP

  [ASP] tester si un fichier qui vient d'etre créé existe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ASP] tester si un fichier qui vient d'etre créé existe

n°888698
cyber_med
Posté le 02-11-2004 à 17:42:45  profilanswer
 

[ASP] tester si un fichier qui vient d'etre créé existe
 
Bonjour,
je voudrais tester si un fichier coté serveur existe à un instant t.
En effet le fichier a été créé suite à l'appuis du bouton submit d'un formulaire.
Apres lors du test, celui ci n'est pas reconnu. (du moins pas la premiere fois)
Je cherche un moyen de choper le fichier du premier coups sans faire de 2eme passage.
ce serait quelquechose comme fso.refresh ... if fso.fileexists("toto.txt" )
 
si qqn aurais une piste
 
Merci
 
cybermed


Message édité par cyber_med le 02-11-2004 à 17:44:52
mood
Publicité
Posté le 02-11-2004 à 17:42:45  profilanswer
 

n°888701
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-11-2004 à 17:47:07  profilanswer
 

ben c'est la syntaxe que tu vians de donner...
 
Dim fso
Set fso = Server.CreateObject("Scripting.FileSystemObject" )
if fso.fileexists(Server.Mappath("/tmp/toto.txt" )) then
  Response.Write "Trouvaid"
else
  Response.Write "DTC"
end if

n°888705
cyber_med
Posté le 02-11-2004 à 17:56:36  profilanswer
 

justement avec ca, le fichier "toto.txt" n'est pas vu la 1ere fois apres le formulaire, il faut que je relance le formulaire pour qu'il voit le fichier.
 
n'existe t il pas des outils de synchronisation en asp?
genre: je créee un fichier. attendre qu'il arrive. lire le fichier.
 
Merci de ta réponse Arjuna


Message édité par cyber_med le 02-11-2004 à 17:57:10
n°888709
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-11-2004 à 18:01:08  profilanswer
 

dim prout
prout = false
do while not prout
   if fso.fileexists("toto.txt" ) then
      prout = true
   else
      prout = not true ' histoire de rien faire
   end if
loop
 
Normalement ça marche.
 
Seul truc, c'est que IIS va bouffer 100% du CPU en attendant que le fichier soit créé. Y'a pas d'autre solution hormis faire un activex qui fait un wait(x) (ou un "DoEvents" en VB), que t'appelles dans la boucle.

n°888712
cyber_med
Posté le 02-11-2004 à 18:10:39  profilanswer
 

ouai si avec une variable flag,
mais il faut que je la passe en parametre d'une page à l'autre.
 
Je vais voir niveau temps si c'est long: normalement ca dure juste le temps de la creation du fichier texte
 
Merci Arjuna


Message édité par cyber_med le 02-11-2004 à 18:11:06
n°888811
Arjuna
Aircraft Ident.: F-MBSD
Posté le 02-11-2004 à 19:59:20  profilanswer
 

Mais je comprends pas : le fichier texte, tu le crées comment ?
C'est pas ton script ASP qui le crée ???
 
Parceque l'ASP fonctionne par défaut en mode synchrone, donc tant que la fonction qui crée le fichier n'a pas terminé de le créer, l'ASP n'a pas la main... Y'a que si tu utilises un ActiveX avec des fonctions assychrones que tu auras le problème, et normalement, s'il est bien foutu, tu peux contrôler la chose plus proprement...
 
Par contre, évidement, si c'est une autre page ASP qui génère le fichier par exemple, c'est rappé :/

n°889201
cyber_med
Posté le 03-11-2004 à 09:23:22  profilanswer
 

c'est le script asp qui créé le fichier texte et appelle un autre script sur une autre fenetre.
Le deuxieme script lui teste si le fichier existe et réalise un traitement.
__
(et ce que j'ai remarqué c'est que le 2eme script ne vois pas le fichier tout de suite)
il faudrait une fonction qui fasse un refresh sur le serveur style fso.refresh ... fso.fileexists mais ca n'existe pas. ou bien comme tu as dis avec un flag, je vais voir pour le flag si ca marche

n°889236
cyber_med
Posté le 03-11-2004 à 10:17:42  profilanswer
 

too bad: avec le flag ca ne marche pas:
page 1 :  
'script de creation du fichier texte
'aller toto.asp?Synchro=1
 
page toto.asp:
varSynchro=Request("Synchro" )
while varSynchro=1
      if fso.fileexists("Mon fichier.txt" ) then
           varSynchro=0
      end if
wend
'suite

n°889266
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-11-2004 à 10:49:33  profilanswer
 

Hmmm... A la fin de la procédure de création de ton fichier, tu fais bien ? :
 
fil.close
set fil = Nothing
set fso = Nothing
 
Sans ces lignes, qui indiquent au moteur ASP de lever les verroux sur le fichier, il est normal que le fichier mette du temps à apparaître : il faut attendre que le garbage collector de l'ASP détruise les objets pour que le fichier soit effactivement présent sur le disque et accessible.


Message édité par Arjuna le 03-11-2004 à 10:49:50
n°889578
cyber_med
Posté le 03-11-2004 à 16:08:07  profilanswer
 

oui j ai fait un =nothing pour fso et pour le fichier


Message édité par cyber_med le 03-11-2004 à 16:16:34
mood
Publicité
Posté le 03-11-2004 à 16:08:07  profilanswer
 

n°889586
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-11-2004 à 16:15:45  profilanswer
 

Bizarre... Parceque moi j'ai jamais eu ce problème, quand bien même je lisais dans le fichier à la ligne après que je l'avais écrit :??:


Message édité par Arjuna le 03-11-2004 à 16:16:02
n°889589
cyber_med
Posté le 03-11-2004 à 16:19:30  profilanswer
 

set f = nothing
Set fso = nothing
response.write "<SCRIPT language='javascript'>"
response.write "window.open(" & chr(34) & "resultat.asp?Nom=" & Request("Nom" ) & chr(34) &  "," & chr(34) & "bas" & chr(34) & " );"
response.write "</SCRIPT>"
 
.. et c'est dans l'autre fenetre que je lit le fichier créé
 
et la il ne detecte pas tout de suite le changement ou prend les valeurs d'un fichier périmé
 
 
Merci pour ces precisions j ai de quoi réflechir...


Message édité par cyber_med le 03-11-2004 à 16:27:45
n°889597
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-11-2004 à 16:27:03  profilanswer
 

strange [:spamafote]
 
Sinon, tu fou un timeout sur le window.open, histoire de laisser le temps au fichier d'être libéré :)

n°889602
cyber_med
Posté le 03-11-2004 à 16:30:41  profilanswer
 

comment mettre en oeuvre ca?
avant il faut mettre window.timeout=2000 ... window.open("..." )?

n°889604
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-11-2004 à 16:31:34  profilanswer
 

nan.
 
http://www.devguru.com
 
=> Cherche dans JavaScript la fonction timeout

n°889605
Arjuna
Aircraft Ident.: F-MBSD
Posté le 03-11-2004 à 16:32:10  profilanswer
 
n°889609
cyber_med
Posté le 03-11-2004 à 16:34:22  profilanswer
 

merci Arjuna! je te tiens au courant!

n°899914
cyber_med
Posté le 16-11-2004 à 16:32:29  profilanswer
 

en fait mon probleme etait dut à la cache.
 
il voyait une vieille version du site


Message édité par cyber_med le 17-11-2004 à 19:09:46

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

  [ASP] tester si un fichier qui vient d'etre créé existe

 

Sujets relatifs
[PHP] Récupérer le dernier tableau d'un fichier HTMLparsage de fichier - boucle sur un repertoire
Comment crée un fichier .exe???????[BATCH] fichier txt et variable
Upload d'un fichier MP3vbscript + fichier INI
tester une connexion FTP annonymous en phpécrire dans un fichier excel
Récuper le nom d'un fichier 
Plus de sujets relatifs à : [ASP] tester si un fichier qui vient d'etre créé existe


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