Actionscript 3 提取;“文件名”;从actionscript 3中的完整路径

Actionscript 3 提取;“文件名”;从actionscript 3中的完整路径,actionscript-3,Actionscript 3,AS3是否有内置类/函数从完整路径提取“文件名”。e、 g.我想从完整路径“C:\Documents and Settings\All Users\Desktop\filename.doc”中提取“filename.doc”你不能做一些基本的事情吗 string filename = filename.substring(filename.lastIndexOf("\\") + 1) 我知道这不是一个单一的函数调用,但它应该同样工作 根据@Bryan Grezeszak的评论进行编辑。显然,如

AS3是否有内置类/函数从完整路径提取“文件名”。e、 g.我想从完整路径“C:\Documents and Settings\All Users\Desktop\filename.doc”中提取“filename.doc”

你不能做一些基本的事情吗

string filename = filename.substring(filename.lastIndexOf("\\") + 1)
我知道这不是一个单一的函数调用,但它应该同样工作


根据@Bryan Grezeszak的评论进行编辑。

显然,如果您使用AIR,您可以使用该类,或者更具体地说,使用静态成员。它应该返回“/”或“\”,您可以将其插入@cmptrgeekken的建议中。

首先,要查找路径中最后出现的/或\项,请使用以下方法:

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;
这将在最后一个斜杠之前的字符串中为您提供索引。因此,要返回该字符串之后的部分,请向索引中添加一个(将其移过最后一个斜杠),然后返回该字符串的其余部分

var docName: String = fullPath.substr(slashIndex + 1);
要作为简单易用的函数执行此操作,请执行以下操作:

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);

对于Air,您可以尝试使用类来提取文件名

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

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

file_ = file_.parent;

trace(file_.url);

您可以使用类似的方法来完成这项工作:

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

tmpArray = fullFilePath.split("\");
fileName = tmpArray.pop();
var-tmpArray:Array;
var文件名:字符串;
tmpArray=fullFilePath.split(“\”);
fileName=tmpArray.pop();

如果您使用的是Unix文件系统(“/”)或Windows文件系统(“\”),则必须小心。

当用户选择文件时,会动态拾取完整路径字符串,看起来“c:\temp\abc.doc”lastIndexOf(“\”)不适用于上述情况。为什么不适用?lastIndexOf(“\\”)的意思是找到最后一个“\”并告诉我它在字符串中的索引..您的路径是正确的,但是您需要在索引中添加一个来删除最终结果中的实际斜杠:)谢谢您的代码。但是,我有一个动态路径字符串,看起来像“D:\temp\abc.doc”。getFileName(“D:\temp\abc.doc”)返回“D:empabc.doc”。不,您不:)反斜杠在生成字符串时充当转义符,这就是为什么\n生成新行,\t生成制表符等。您的字符串“D:\temp\abc.doc”实际上以“D:{tab}emp{symbol}bc doc结尾,除非您转义斜杠,否则实际上不会生成包含任何斜杠的字符串,像\\