begin process at 2012 02 14 07:34:08
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > UTILISATION DES FICHIERS EN JAVASCRIPT

UTILISATION DES FICHIERS EN JAVASCRIPT


 Information sur le tutoriel

Note :
7 / 10 - par 1 personne
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10


 Description

Comment créer, ecrire et supprimer un fichier ?

Tutorial

Partie 1 : Objets

L'objet ActiveX qui permet d'utiliser les fichiers est l'objet Scripting.FileSystemObject.
var fso=new ActiveXObject("Scripting.FileSystemObject");

Partie 2 : Créer un fichier

La méthode qui permet de créer un fichier est la méthode CreateTextFile.
fso.CreateTextFile("Nom du fichier.extension",true);
>>Le deuxième argument précise si on veut écraser le fichier déja présent sous le meme nom s'il existe.

Partie 3 : Utiliser un fichier

La méthode qui permet d'ouvrir un fichier est la méthode OpenTextFile.
var otf=fso.OpenTextFile("Nom du fichier.extension",1 ,true);
>>Le deuxième argument précise le type d'ouverture : 1-Ouverture en lecture ; 2-Réecriture ; 8-Ecriture a la suite.
>>Le troisième argument précise de créer (true) ou non (false) le fichier s'il n'existe pas.

Partie 3.1 : Ecrire dans un fichier

La méthode qui permet d'écrire dans un fichier est la méthode Write ou WriteLine.
otf.Write("Texte à marquer");
otf.WriteLine("Ligne à marquer");
>>Remarque : la méthode WriteLine marque le texte entré en argument et lui rajoute un saut de ligne.
>>Remarque : le fichier doit d'abord être ouvert en réecriture ou en écriture a la suite (2 ou 8).

Partie 3.2 : Lire un fichier

La méthode qui permet de lire un fichier est la méthode Read ou ReadAll.
otf.Read(9);
otf.ReadAll();
>>Remarque : Le fichier doit être ouvert en mode lecture.
>>Remarque : la méthode Read lit le nombre de caractère entré en argument.
>>Remarque : la méthode ReadAll lit tout le fichier.

Partie 3.3 : Fermer un fichier

La méthode qui permet de fermer un fichier est la méthode Close.
otf.Close();

Partie 4 : Supprimer un fichier

La méthode qui permet de supprimer un fichier est la méthode DeleteFile.
fso.DeleteFile("Nom du fichier.extension");

Partie 5 : Exemples

var fso=new ActiveXObject("Scripting.FileSystemObject"); //Système de fichier.
fso.CreateTextFile("fichier1.txt",true); //Création du fichier "fichier1.txt" avec ecrasement.
var otf=fso.OpenTextFile("fichier1.txt", 8 ,true); //Ouverture du fichier "fichier1.txt" en mode écriture a la suite.
otf.WriteLine("Bonjour."); //Ecriture de la ligne "Bonjour.".
otf.Write("Coucou"); //Ecriture de "Coucou".
otf.Close(); //Fermeture du fichier "fichier1.txt".
otf=fso.OpenTextFile("fichier1.txt"1 ,false); //Ouverture du fichier "fichier1.txt" en mode lecture.
alert(otf.Read(7)); //Lecture des 7 premiers caractères ("Bonjour.").
alert(otf.ReadAll()); //Lecture de tout le fichier ("Bonjour.\nCoucou").
otf.Close(); //Fermeture du fichier "fichier1.txt".
fso.DeleteFile("fichier1.txt"); //Suppression du fichier "fichier1.txt".

Pour plus d'informations allez voir le site de bultez : http://marcel-bultez.chez-alice.fr/documents/SupportsRepertoiresFichiers.htm

 

Tutorial ecrit par stfou



Commentaires

Commentaire de olbouss le 12/03/2007 12:04:37


J'essaye avec IE7 sur windows XP SP2, mais ça ne marche pas. : Erreur javascript "Un composant activeX ne peut pas créer d'objet"

Existent t'il d'autres possibilité pourr mlire et écrire des fichiers avec javascript ?

Commentaire de pinacolada le 12/04/2007 22:55:31

Très bon cours, complet...
Une question : J'ai ouvert un fichier xml avec l'activeX qui le permet et utilisé (modifié) son contenu. Après rajout et suppression de noeuds, j'aimerais le sauvegarder mais la méthode 'save' de l'objet xml bloque (sécurité) alors que cette façon de créer des fichiers fonctionne sans pb (après avertissement : un activex essaie de... etc.).
Comment transférer le nouveau contenu de mon xml dans un nouveau fichier (ou sauvegarder dans le même) sans écrire une à une (même dans une boucle (for...in) tout mon fichier xml ?

Commentaire de dark vador 57 le 22/05/2007 14:44:26

J'ai la même erreur que olbouss et donc impossible d'utiliser ce système. Si jamais une autre solution existe ou s'il est possible de résoudre l'erreur activeX je suis preneur.

Commentaire de dark vador 57 le 22/05/2007 15:00:15

Désolé personnelement j'avais IE qui me bloqué ActiveX j'ai juste eu à modifier les paramètres de sécurité d'IE pour accepter les ActiveX non signés.

Commentaire de Cyreb le 06/01/2008 09:17:52

Au niveau de la securité de vos systeme, accepter n'importe quel activx me semble une démarche des plus hasardeuse, écrire des fichier, c'est aussi pouvoir en effacer, en modifier, generer du code dit malicieux
(les plus vieux d'entre vous se souviennent peut'etre d'iloveyou.vbs) les possibilité offerte par les script liés au activx sont énormes et seduisantes mais soyer prudent. conseil : N'ACCEPTEZ JAMAIS LES ACTIVX INCONNUS.

Commentaire de Darksheep le 21/03/2008 12:49:47

Mais où donc est créé le fichier ? moi ça fonctionne pourtant(messages bonjour, coucou) , même apres avoir supprimé la ligne : fso.DeleteFile("fichier1.txt"); //Suppression du fichier "fichier1.txt".
Je ne retrouve pas fichier1.txt à coté de ma page web !

Commentaire de Darksheep le 21/03/2008 12:54:36

Ok en fait sur IE fichier1.txt est créé sur le bureau, sur firefox ça ne fonctionne pas  :(

Commentaire de nicobsa le 22/06/2008 16:10:03

Bonjour, tout le monde, excusez moi de devoir vous poser cette question, mais, le code de l'exemple, il faut le mettre entre des balises "script" dans une page html, et c'est tout ? il n'y a rien d'autre à ajouter ?

Car je sèche un peu en fait,

j'ai d'abord tenté de l'ajouter à un .js et de lire le js, mais ca revient au meme

Commentaire de nicobsa le 22/06/2008 16:53:03

Non, en fait j'ai finalement trouvé comment faire..
Par contre j'aurais aimé connaitre la différence entre Write et WriteLine   car normalement le premier permet d'écrire des texte, mais pour les sauts de ligne, comment ca se passe ?

Commentaire de physiquantique le 27/06/2008 13:10:32

c'est étonnant , les fonctions utilisée dans la gestion des fichiers en vb sont proches de celles-ci ...
Mais n'y a t il pas de risques que les scripts soient bloqués par le systeme ?

Commentaire de dark vador 57 le 27/06/2008 19:57:08

En effet il y a vraiment beaucoup de risque que l'ActiveX soit bloqué par le navigateur.
Ces fonction sont très pratique mais je pense qu'elles sont uniquement utilisable dans un environnement où tu peut controler les poste utilisateur, un intranet d'une petite entreprise, dans ce cas tu pourra demandé à l'utilisateur d'activer les ActiveX sans craindre pour la sécurité. Dans les autres cas ils est recommandé d'interdire les ActiveX pour des raison évidente de sécurité.

Commentaire de zecreator le 20/08/2008 11:59:50

!!! ABSOLUMENT PAS SECURISE !!!

Il est grandement recommande de ne pas utiliser de composants ActiveX dans les sites web, surtout pour écrire sur la machine cliente.

1 - Pour une question évidente de sécurité.
2 - Pour ne pas fermer le site a uniquement IE et Windows
3 - Cela n'a aucun intérêt, puisque de toute façon il faudra que le visiteur accepte de baisser son niveau de securite web a quasiment 0% (plus de securite) pour pouvoir utiliser le site (y a que les dingues ou les ignorants qui peuvent faire cela).

Arretez donc d'utiliser des composants ActiveX dans les sites web, composants qui ne sont generalement pas maitrises du tout, et qui plantent le site ou la machine.

Zecreator

Commentaire de dark vador 57 le 20/08/2008 18:58:35

Je suis tout à fait d'accord dans le cas d'un site internet, par contre c'est le genre de fonction qui sont extrêmement pratique dans l'intranet d'une entreprise et c'est bien uniquement dans ce cas que je conseille d'utiler des ActiveX.

Commentaire de marcotte le 08/02/2009 05:03:06

Faire en sorte que le javascript puisse écrire/lire des fichiers sur le disque c'est n'importe quoi !
C'est la porte ouverte de votre pc à tous les vents mauvais d'internet.
Mais vraiment y a des naïfs^^

Sinon cela n'enlève rien à la qualité du tuto qui est très bien fait ;)

Commentaire de marcotte le 08/02/2009 05:10:24

J'ai vu en dernier moment ta réponse, c'est bien de préciser que c'est à réserver à un intranet, mais bon c'est en début de sujet qu'il faut le dire, je t'invite à le faire si c'est possible sinon tant pis^^
Pour ce qui est de l'intranet, si un code malveillant parvient à passer la sécurité d'entrée du réseau, il entrera facilement dans les pc qui ont diminué leur degré de sécurité pour accepter l'activeX.
J'en profite pour mettre une note à ton tuto, j'avais oublié :/

Commentaire de Psype le 17/06/2011 14:02:57

Franchement, je m' offusque de la réaction de certaines personnes, traitant les gents d'idiots, d'ignorants (et j'en passe) !

zecreator :
Bien sûr que non, c'est pas sécurisé ? Et alors ? C'est ton problème ?
"Il est grandement recommande de ne pas utiliser de composants ActiveX dans les sites web" : alors, à quoi ils servent ? surtout que par défaut, la plupart sont désactivés. Libre à moi de planter ma machine si je le souhaite.

marcotte :
"Faire en sorte que le javascript puisse écrire/lire des fichiers sur le disque c'est n'importe quoi !"
Non. C'est utile. Disons plutôt qu'à toi, ça ne te sert pas.


Pour faire simple, je suis créateur de scripts Greasemonkey. Qui s'injectent dans la page en cours, et ajoutent des fonctionnalités. Il m'est arrivé plusieurs fois d'écrire dans un fichier avec, à la demande de l'utilisateur.
Il n'y a pas que des imbéciles sur le web. Et si nous ne nous servons pas de toute la puissance de l'outil, à quoi bon innover ?

Commentaire de MacGaliver le 09/07/2011 17:12:15

Bonjour,

La lecture ne fonctionne pas sous une JS (en local) et avec un HTA.

---
var fso=new ActiveXObject("Scripting.FileSystemObject");
var otf=fso.OpenTextFile("texte.txt",1 ,true);
var txte=otf.ReadAll();
alert(txte);
otf.Close();
---
var fso=new ActiveXObject("Scripting.FileSystemObject");
var otf=fso.OpenTextFile("texte.txt",1 ,true);
alert(otf.ReadAll());
otf.Close();
---
+ Avec chemin complet

Commentaire de MacGaliver le 19/01/2012 11:02:28

Slt,

Mais avec XP SP3: c'est ok.

C'est dur de trouver toutes ces informations sur le web: 10/10.

Cdt.

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,125 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales