Рекурсивная папка / копия каталога с AS3 / Air - PullRequest
2 голосов
/ 13 сентября 2010

Можно ли использовать для этого функцию паузы / возобновления ??

source.copyTo (destination);

Было бы здорово, если бы вы отправили его как можно скорее.

Ответы [ 3 ]

5 голосов
/ 13 сентября 2010

Я нашел одно решение здесь CookBook от Adobe

private function copyInto(directoryToCopy:File, locationCopyingTo:File):void
{
    var directory:Array = directoryToCopy.getDirectoryListing();

    for each (var f:File in directory)
    {
        if (f.isDirectory)
          copyInto(f, locationCopyingTo.resolvePath(f.name));
        else
          f.copyTo(locationCopyingTo.resolvePath(f.name), true);
    }
}
1 голос
/ 09 марта 2011

Или вы можете просто использовать метод File.copyTo ():

var source:File = new File();
source.resolvePath( 'sourceFolder' );
var destination:File = new File();
destination.resolvePath( 'destinationFolder' );
source.copyTo( destination );

Если каталоги большие и вы не хотите, чтобы ваше приложение зависло в ожидании копии, вы можете использовать copyToAsync, что приведет к отправке исходного файла Event.COMPLETE, когда работа будет завершена.

0 голосов
/ 08 февраля 2016

Вот модифицированный код сверху, если кто-то хочет скопировать весь каталог; пустые папки и все. Обратите внимание на параметр «copyEmptyFolders», который будет использоваться в аргументах.

    //Recursivley copies directory.
    private static function copyInto(directoryToCopy:File, locationCopyingTo:File, copyEmptyFolders:Boolean=true):void
    {

        var directory:Array = directoryToCopy.getDirectoryListing();

        for each (var f:File in directory)
        {
            if (f.isDirectory)
            {

                // Copies a folder whether it is empty or not.
                if( copyEmptyFolders ) f.copyTo(locationCopyingTo.resolvePath(f.name), true);

                // Recurse thru folder.
                copyInto(f, locationCopyingTo.resolvePath(f.name));

            }
            else
                f.copyTo(locationCopyingTo.resolvePath(f.name), true);

        }

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