Je viens d'en faire ma propre version. Ma fonction peut être utilisée pour en extraire tout ce que vous voulez, si vous n'avez pas besoin de tout cela, vous pouvez facilement supprimer du code.
<html>
<body>
<script type="text/javascript">
// Useful function to separate path name and extension from full path string
function pathToFile(str)
{
var nOffset = Math.max(0, Math.max(str.lastIndexOf('\\'), str.lastIndexOf('/')));
var eOffset = str.lastIndexOf('.');
if(eOffset < 0 && eOffset < nOffset)
{
eOffset = str.length;
}
return {isDirectory: eOffset === str.length, // Optionally: && nOffset+1 === str.length if trailing slash means dir, and otherwise always file
path: str.substring(0, nOffset),
name: str.substring(nOffset > 0 ? nOffset + 1 : nOffset, eOffset),
extension: str.substring(eOffset > 0 ? eOffset + 1 : eOffset, str.length)};
}
// Testing the function
var testcases = [
"C:\\blabla\\blaeobuaeu\\testcase1.jpeg",
"/tmp/blabla/testcase2.png",
"testcase3.htm",
"C:\\Testcase4", "/dir.with.dots/fileWithoutDots",
"/dir.with.dots/another.dir/"
];
for(var i=0;i<testcases.length;i++)
{
var file = pathToFile(testcases[i]);
document.write("- " + (file.isDirectory ? "Directory" : "File") + " with name '" + file.name + "' has extension: '" + file.extension + "' is in directory: '" + file.path + "'<br />");
}
</script>
</body>
</html>
Sortira ce qui suit:
- Le fichier avec le nom 'testcase1' a l'extension: 'jpeg' est dans le répertoire: 'C: \ blabla \ blaeobuaeu'
- Le fichier avec le nom 'testcase2' a l'extension: 'png' est dans le répertoire: '/ tmp / blabla'
- Le fichier avec le nom 'testcase3' a l'extension: 'htm' est dans le répertoire: ''
- Le répertoire avec le nom 'Testcase4' a l'extension: '' est dans le répertoire: 'C:'
- Le répertoire avec le nom 'fileWithoutDots' a l'extension: '' est dans le répertoire: '/dir.with.dots'
- Le répertoire avec le nom «» a l'extension: «» est dans le répertoire: «/dir.with.dots/another.dir»
Avec && nOffset+1 === str.length
ajouté à isDirectory
:
- Le fichier avec le nom 'testcase1' a l'extension: 'jpeg' est dans le répertoire: 'C: \ blabla \ blaeobuaeu'
- Le fichier avec le nom 'testcase2' a l'extension: 'png' est dans le répertoire: '/ tmp / blabla'
- Le fichier avec le nom 'testcase3' a l'extension: 'htm' est dans le répertoire: ''
- Le répertoire avec le nom 'Testcase4' a l'extension: '' est dans le répertoire: 'C:'
- Le répertoire avec le nom 'fileWithoutDots' a l'extension: '' est dans le répertoire: '/dir.with.dots'
- Le répertoire avec le nom «» a l'extension: «» est dans le répertoire: «/dir.with.dots/another.dir»
Compte tenu des cas de test, vous pouvez voir que cette fonction fonctionne de manière assez robuste par rapport aux autres méthodes proposées ici.
Remarque pour les débutants à propos de \\: \ est un caractère d'échappement, par exemple \ n signifie une nouvelle ligne et \ ta tab. Pour permettre d'écrire \ n, vous devez en fait taper \\ n.