11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour

Je lis en Javascript les fichiers présents dans un répertoire avec :

f = fso.GetFolder(repertoire);
var f1 = new Enumerator(f.files);
...

et ça fonctionne.
Je cherche à extraire l’extension de chaque fichier avec :

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
En posant ma question de manière plus ciblée, j’ai une chaine comme celle-ci :

F:\isipc\commun\photoC\commun 1.JPG


Je cherche à extraire l’extension de chaque fichier avec :

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 :

longueur: undefined
posExtension: NaN


Merci par avance de votre aide.

Francois
Modifié par francoisch (22 Jan 2011 - 17:02)
ça serait pas plus simple de chercher le point et de prendre tous les caractères qui se trouvent après ? Je ne connais pas la fonction adéquate en JS mais elle doit certainement exister.. Par exemple : split(): fractionne une chaîne par séparateur en un tableau de sous-chaînes;
surtout que les extensions ne font pas forcément 3 caractères y en a qui font + par exemple on peut mettre .jpg mais aussi .jpeg
J'ai eu une réponse par ailleurs qui donne:

var sFile = "F:\isipc\commun\photoC\commun 1.JPG";
alert(sFile.match(/\.([^.]+)$/)[0])

Je dois encore la tester.

Francois
c'est un peu la même façon de faire que ce que je te proposais (garder ce qui se trouve après le dernier point) mais en utilisant les expressions régulières.
A priori si la regex est bonne ça devrais fonctionner.