2009-04-13 4 views

Répondre

4

ne pourriez-vous faire quelque chose comme base:

string filename = filename.substring(filename.lastIndexOf("\\") + 1) 

Je sais que ce n'est pas un appel de fonction unique, mais cela devrait fonctionner de la même manière.

Édité sur la base du commentaire de @Brian Grezeszak.

+0

La chaîne fullpath est dynamiquement sélectionnée lorsque l'utilisateur sélectionne un fichier et ressemble à "c: \ temp \ abc.doc" lastIndexOf ("\\") ne fonctionne pas pour plus haut. –

+0

pourquoi pas? lastIndexOf ("\\") signifie trouver le dernier '\' et me dire son index dans la chaîne .. – meandmycode

+0

Vous êtes sur le bon chemin, mais vous devez en ajouter un à l'index pour supprimer la barre oblique de la finale resultat :) –

2

Apparemment, vous pouvez utiliser la classe File, ou plus précisément, le membre statique File.separator si vous utilisez AIR. Il devrait retourner "/" ou "\", que vous pouvez ajouter à la suggestion de @ cmptrgeekken.

4

D'abord, vous voulez trouver la dernière occurrence de/ou \ dans le chemin, faire en utilisant ceci:

var fSlash: int = fullPath.lastIndexOf("/"); 
var bSlash: int = fullPath.lastIndexOf("\\"); // reason for the double slash is just to escape the slash so it doesn't escape the quote!!! 
var slashIndex: int = fSlash > bSlash ? fSlash : bSlash;

Cela vous donnera l'index dans la chaîne qui est juste avant la dernière barre oblique. Alors pour revenir la partie de la chaîne après cela, vous ajoutez un à l'index (déplacer passé la dernière barre oblique) et renvoyer le reste de la chaîne

var docName: String = fullPath.substr(slashIndex + 1);

Pour ce faire, en fonction simple à utiliser, faire:

function getFileName(fullPath: String) : String 
{ 
    var fSlash: int = fullPath.lastIndexOf("/"); 
    var bSlash: int = fullPath.lastIndexOf("\\"); // reason for the double slash is just to escape the slash so it doesn't escape the quote!!! 
    var slashIndex: int = fSlash > bSlash ? fSlash : bSlash; 
    return fullPath.substr(slashIndex + 1); 
} 

var fName: String = getFileName(myFullPath);
+0

Merci pour le code. Cependant j'ai une chaîne de chemin dynamique qui ressemble à "D: \ temp \ abc.doc". getFileName ("D: \ temp \ abc.doc") renvoie "D: empabc.doc". –

+0

Non, vous ne le faites pas :) Les barres obliques inversées agissent comme des échappements lorsque vous créez une chaîne, c'est pourquoi \ n crée une nouvelle ligne, \ t crée une tabulation, etc. Votre chaîne de 'D: \ temp \ abc.doc' se termine en tant que 'D: {tab} emp {symbole} bc.doc, vous n'avez pas réellement fait une chaîne qui contient des barres obliques à moins que vous n'échappiez aux barres obliques, comme \\ –

9

pour Air, vous pouvez essayer d'utiliser File classe pour extraire le nom du fichier

var file:File=new File("path_string"); 
//path_string example "C:\\Windows\\myfile.txt" 
var filename:String = file.name; 
0

Essayez ceci:

var file_ :File = new File("C:/Usea_/Dtop/sinim (1).jpg"); // or url variable ... whatever// 

file_ = file_.parent; 

trace(file_.url); 
0

Vous pouvez utiliser quelque chose comme ça pour faire le travail:

var tmpArray:Array<String>; 
var fileName:String; 

tmpArray = fullFilePath.split("\"); 
fileName = tmpArray.pop(); 

Vous devez prendre soin si vous utilisez le système de fichiers Unix («/») ou d'un système de fichiers Windows (le « \ »).