terog
Messages postés2Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention15 juin 2009
-
15 juin 2009 à 11:25
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 2015
-
15 juin 2009 à 14:28
Bonjour à toutes et tous.
Après quelques nombreuses recherches infructueuses sur le net, voici un petit problème que je soumet à votre sagacité.
Un document word est généré et ouvert automatiquement dans MS/Word.
var wdApp = new ActiveXObject("Word.Application");
wdApp.Visible = true;
wdApp.Documents.Open(strFileName);
L'utilisateur, via une page "html/javascript", a le choix, à travers une liste, de supprimer tous ces documents qu'il a créés.
Or, si un document est resté ouvert, l'instruction " fso.DeleteFile " renvoie une boîte de dialogue d'erreur avec le message bloquant "Permission denied".
var filename : "1054113_AA"
var confirmation = window.confirm("Etes-vous certain de vouloir annuler ce formulaire ? ")
if (confirmation==true)
{
//Effacer le document word
var fileSpec = filename + ".doc";
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(fileSpec))
{
fso.DeleteFile(fileSpec, true);
}
...
}
Que me proposez-vous?
- Malgré qu'il soit ouvert dans word, essayer de quand même le supprimer via une astuce;
- Ou, à tout le moins, tester qu'il est ouvert et envoyer un message à l'utilisateur, demandant de le fermer?
Merci à vous, cher lectrice/lecteur.
A voir également:
Refus de supprimer un document ouvert dans une application (Permission denied)
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 15 juin 2009 à 13:06
Bonjour,
_ tu es sûr que DeleteFile possède 2 paramètres ?
je ne crois pas ( mais peut-être me goure-je )
_ comme il est ouvert, le refus "semble normal"
_ essayer ( mais pas sûr non plus !! ) en passant par
del avec window en ligne de commande ?
var w = new ActiveXObject("WScript.Shell");
w.run ('cmd /c del "'+nom du fichier+'"');
vaudrait mieux le fermer peut-être ?
Cordialement
3°) Je n'ai pas testé cette solution qui est un peu "cavalière" à mon goût [ Je l'a gardé en ultime recours... ].
Effectivement, le fermer, reste la solution la plus propre. Donc, cela revient à tester si ce fichier est "ouvert"...
Mais l'instruction js pour cela ? Mystère ?
Finalement, j'ai opté pour le traitement des exceptions. Mais, il y a toujours cette option du "test du fichier ouvert" qui m'interpelle. Si quelqu'un a une ouverture de ce côté, je suis preneur...
//Effacer le document word
var fileSpec = URLsave + "print\" + filename + ".doc";
var fso = new ActiveXObject("Scripting.FileSystemObject");
if (fso.FileExists(fileSpec))
{
try
{
fso.DeleteFile(fileSpec, true);
}
catch(err)
{
alert("Veuillez fermer le document, toujours ouvert dans MS/Word avant de le supprimer");
return;
}
}
En tout cas, je te remercie de ton aide.
Bonne continuation.
@+
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 15 juin 2009 à 14:28
tester si un fichier est ouvert avec une autre application en js ??
je doute qu'on puisse ( remarque que : peu de langages le peuvent
au moins simplement et directement !! )
sauf à créer son activeX qui le fasse ce test, c'est possible ,
mais try / catch ! tu as raison : c'est simple et ça baigne toujours.