Извлечение «имени файла» из полного пути в ActionScript 3 - PullRequest
5 голосов
/ 13 апреля 2009

Есть ли в AS3 встроенный класс / функция для извлечения «имени файла» из полного пути. например Я хочу извлечь " filename.doc " из полного пути "C: \ Documents and Settings \ All Users \ Desktop \ filename.doc"

Ответы [ 6 ]

9 голосов
/ 04 октября 2010

Для Air вы можете попробовать использовать Файл Класс для извлечения имени файла

var file:File=new File("path_string");   
//path_string example "C:\\Windows\\myfile.txt"  
var filename:String = file.name;
4 голосов
/ 13 апреля 2009

Сначала вы хотите найти последнее вхождение / или \ в пути, сделайте это с помощью этого:

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);
4 голосов
/ 13 апреля 2009

Не могли бы вы просто сделать что-то основное, как:

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

Я знаю, что это не единственный вызов функции, но он должен работать точно так же.

Отредактировано на основе комментария @Bryan Grezeszak.

2 голосов
/ 13 апреля 2009

Очевидно, вы можете использовать класс File или, более конкретно, статический член File.separator , если вы работаете с AIR. Он должен возвращать «/» или «\», которые вы можете подключить к предложению @ cmptrgeekken.

0 голосов
/ 03 марта 2017

Вы можете использовать что-то вроде этого, чтобы сделать работу:

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

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

Вы должны позаботиться о том, чтобы использовать файловую систему Unix ("/") или файловую систему Windows ("\").

0 голосов
/ 10 декабря 2013

Попробуйте это:

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

file_ = file_.parent;

trace(file_.url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...