Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/01/2011, 09h33   #1
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Par défaut Extraire l'extension d'un fichier

Bonjour

Je lis les fichiers présents dans un répertoire avec :
Code :
1
2
3
 
f = fso.GetFolder(repertoire);
var f1 = new Enumerator(f.files);
Je cherche à extraire l’extension de chaque fichier avec :
Code :
1
2
3
4
5
 
var longueur = f1.item().length;
var posExtension = longueur - 3;
var extension = f1.item().substring(posExtension,3);
var extension = extension.toLowerCase();
mais ça ne fonctionne pas.

Pour commencer, j’ai : longueur: undefined
Merci par avance de votre aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 10h33   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
c'est du vbscript pas du javascript...

ensuite faut recupérer le name du fichier non ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 10h47   #3
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Pour moi, qui ne suis pas un fin connaisseur, c'est bien du JS; je l'utilise dans des pages Web.

Le nom des fichiers de la liste est dans f1.item(), chacun à son tour.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 10h53   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
je confirme c'est bien du vbscript ...
js est incapable d'alller lire des noms de fichiers

tu utilise fso ... file system object


item() est a mon avis le fichier lui même
il doit avoir une proprété name ou filename ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 10h57   #5
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Citation:
Envoyé par francoisch Voir le message
Pour moi, qui ne suis pas un fin connaisseur, c'est bien du JS
nous v'là beaux

Non, SF a raison c'est bien du VBS. Ces méthodes n'existent pas en JS.
Par contre effectivement, dans un contexte IE-only, il me semble bien que tu peux opter pour un scripting en VBS plutot que JS dans les pages, en ajoutant la propriété type="text/VBScript" à ta balise script.
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 11h06   #6
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
en VBscript.....

Code :
1
2
Set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.GetExtensionName("c:\Document\monfichier.jpg")
ou
Code :
1
2
3
For Each objFile in f.files
  Wscript.Echo "Extension: " & objFile.Extension
Next
en javascript, une réponse ici
http://stackoverflow.com/questions/1...ith-javascript
Code :
1
2
3
function getFileExtension(filename) {
   return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename) : undefined;
}
Note:
je ne pratique aucun de ces deux langage donc je peux dire n'importe quoi.....
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 11h26   #7
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Citation:
Envoyé par jabbounet Voir le message
Note:
je ne pratique aucun de ces deux langage donc je peux dire n'importe quoi.....
MOUTARDE !!! ...Moutarde ?! Ne soyez pas ridicule...


( ma fille regarde ça en boucle en ce moment j'ai pas pu m'en empecher pardon )
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/01/2011, 21h15   #8
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
JScript pas bien loin(*) de VBscript, à preuve
Code :
1
2
3
4
5
6
function ShowExtensionName(filespec){
   var fso, s = "";
   fso = new ActiveXObject("Scripting.FileSystemObject");
   s += fso.GetExtensionName(filespec);
   return(s);
}
...toute la suite chez MSDN [ GetExtensionName Method]

(*)on parle bien sûr de la référence des méthodes
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 22h25   #9
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
J'ai cette fonction JS qui fonctionne très bien:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
<!-- fonction de recherche sur le Client des fichiers présents dans un dossier -->
var fso = new ActiveXObject("Scripting.FileSystemObject");
var files = "";
premierFichier = "";
function Aller(repertoire)  
    {
	f = fso.GetFolder(repertoire);
	var f1 = new Enumerator(f.files); 
	for (; !f1.atEnd(); f1.moveNext())
		{ 
		premierFichier = f1.item();
		//				document.write ("f1: "+f1.item()+"<br>");
		//				document.write ("premierFichier: "+premierFichier+"<br>");
		var f2 = "file:///"+f1.item()+","+f2;		// attention: utiliser le même type de quote que plus bas dans lignetot.split
		}
	var long = f2.length;	
	var f3 = f2.substring(0, (long - 10));	// supprimer undefined,
	//					document.write ("f3: "+f3+"<br>");	
	return [premierFichier, f3];
	// return f3; 	
	}
//  End -->
J'essaie d'y faire une extension que je présentais au début de ce fil.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/01/2011, 23h39   #10
Expert Confirmé Sénior
 
Avatar de RomainVALERI
 
Homme Romain VALERI
POOête
Inscription : avril 2008
Messages : 2 572
Détails du profil
Informations personnelles :
Nom : Homme Romain VALERI
Âge : 35
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : POOête

Informations forums :
Inscription : avril 2008
Messages : 2 572
Points : 4 073
Points : 4 073
Citation:
Envoyé par francoisch Voir le message
J'ai cette fonction JS qui fonctionne très bien
Nuance : "qui fonctionne très bien... sous IE uniquement"
Aucun autre navigateur ne pourra exécuter ce code spécifique Microsoft.
__________________

...pour les linguistes et les curieux >>> générateur de phrases aléatoires

__________________
RomainVALERI est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 10h04   #11
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Tu as tout à fait raison puisque l'accès aux fichiers du PC suppose l'autorisation d'un ActiveX.

Je crois qu'il existe un plug-in ActiveX en Firefox mais j'ai l'impression qu'il n'a pas bonne réputation, sans l'avoir pratiqué.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 10h08   #12
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
de toute façon javascript n'a pas à avoir accès aux fichiers locaux dans son utilisation web.

Après si c'est pour une utilisation locale uniquement c'est une autre affaire.
Mais comme tu parle de vouloir l'adapter pour ffx....

Je dis donc que la conception même de ton truc est à revoir !
si c'est pour une finalité web distance sur un poste client, l'accès au disque local est proscrite. Si tu dois avoir des données sur le client regarde du coté de cookies ..
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 16h44   #13
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
En posant ma question de manière plus ciblée, je lis en Javascript les fichiers présents dans un répertoire j’obtiens :
Code :
1
2
 
fichier: F:\isipc\commun\photoC\commun 1.JPG
Je cherche à extraire l’extension de chaque fichier avec :
Code :
1
2
3
4
5
 
var longueur = fichier.length;
var posExtension = longueur - 3;
var extension = fichier.substring(posExtension,3);
var extension = extension.toLowerCase();
mais ça ne fonctionne pas.

Pour commencer, j’ai :
Code :
1
2
3
 
longueur: undefined
posExtension: NaN
Merci par avance de votre aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 16h49   #14
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Citation:
je lis en Javascript les fichiers présents dans un répertoire
NON pas en javascript ...
Citation:
de toute façon javascript n'a pas à avoir accès aux fichiers locaux dans son utilisation web.
tu utilises un activieX ce n'est donc pas crossbrowser !!!
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 19h46   #15
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 930
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 930
Points : 4 744
Points : 4 744
si tu ne veux pas utiliser les méthodes mise à ta disposition par MSDN, exclusives IE, tu peux toujours faire
Code :
1
2
3
var sFile = "F:\isipc\commun\photoC\commun 1.JPG";
var sExt  = sFile.split('.').reverse()[0];
alert( sExt);
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/01/2011, 22h08   #16
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Merci NoSmoking, je pense que je comprend ce que tu proposes sans avoir le temps de l'essayer pour le moment, je vais l'essayer dès que je pourrai, ça devrait effectivement bien résoudre mon problème.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 11h06   #17
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
Si la question est juste comment récupérer l'extension dans un path string
il y a plus direct:
Code :
1
2
var sFile = "F:\isipc\commun\photoC\commun 1.JPG";
alert(sFile.match(/\.([^.]+)$/)[0])
[1] pour n'avoir que l'extension sans le point
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 14h43   #18
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Merci de ta réponse, je vais utiliser ta solution.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 18h56   #19
Nouveau Membre du Club
 
Inscription : novembre 2006
Messages : 189
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 189
Points : 29
Points : 29
Bonjour

J’ai essayé vos deux solutions mais je n’ai pas su les faire fonctionner.

J’ai :
Code :
1
2
3
4
 
document.write ("f1.item(): "+f1.item()+"<br>");
var sExt = f1.item().match(/\.([^.]+)$/)[0];
document.write ("sExt: "+sExt+"<br>");
Le premier document.write donne :
Code :
1
2
 
f1.item(): F:\isipc\commun\photoC\commun 1.JPG
Mais le deuxième document.write ne donne rien du tout.

Même résultat avec la solution var sExt = f1.item().split('.').reverse()[0];

Merci par avance de votre aide.

Francois
francoisch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/01/2011, 19h26   #20
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 007
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 007
Points : 45 091
Points : 45 091
et attention document.write est destructeur ...

Code :
1
2
3
alert("f1.item(): "+f1.item());
var sExt = f1.item().match(/\.([^.]+)$/);
alert("sExt: "+sExt);
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h11.


 
 
 
 
Partenaires

Hébergement Web