AS3是否具有内置类/函数以从完整路径中提取“文件名”。例如我希望从完整路径“C:\ Documents and Settings \ All Users \ Desktop \ filename.doc”中提取“ filename.doc ”
答案 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;),则需要注意。