从动作脚本3中的完整路径中提取“文件名”

时间:2009-04-13 12:20:48

标签: actionscript-3

AS3是否具有内置类/函数以从完整路径中提取“文件名”。例如我希望从完整路径“C:\ Documents and Settings \ All Users \ Desktop \ filename.doc”中提取“ filename.doc

6 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:4)

难道你不能做一些基本的事情:

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

我知道这不是一个单一的函数调用,但它应该是一样的。

根据@Bryan Grezeszak的评论编辑。

答案 2 :(得分:4)

首先,您要查找路径中最后一次出现的/或\,使用此方法执行此操作:

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

答案 3 :(得分:2)

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

答案 4 :(得分:0)

试试这个:

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

file_ = file_.parent;

trace(file_.url);

答案 5 :(得分:0)

你可以用这样的东西来完成这项工作:

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

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

如果您使用的是Unix文件系统(&#34; /&#34;)或Windows文件系统(&#34; \&#34;),则需要注意。