Фоновый скрипт для проверки передачи файлов

Я должен написать сценарий, который проверяет ход передачи файла, который делает фоновый пакет. Я знаю количество файлов, которые должны быть в папке, чтобы иметь статус «завершено». Я пытаюсь следующее в фоновом режиме PHP:

$id = $_GET['id'];
$qtd = $_GET['qtd'];

checkProgress($id, $qtd);

function checkProgress($qtd, $id) {
$dirWav = "D:\\path\\to\\wav\\".$id."\\";
$dirMP3 = "D:\\path\\to\\mp3\\".$id."\\";

$progWav = array_diff( scandir($dirWav), array(".", "..") );
$progMP3 = array_diff( scandir($dirMP3), array(".", "..") );

$numWav = count($progWav);
$numMP3 = count($progMP3);

if ($numMP3 < $qtd OR $numWav < $qtd) {
sleep(5);
checkProgress($qtd, $id); //Here i'm trying to do it in a recursive way
} else {
//End script, record to the DB
}
}

Я уверен, что проверенный beign папки пуст при запуске, и что пакет работает безупречно. Но в начале скрипта он автоматически доходит до конца (я использовал mkdir, чтобы проверить его ленивым способом).

Как я могу достичь того, чего хочу? Я не могу проверить это через cronjob или что-то в этом роде.

0

Решение

Это Powershell, но я предполагаю, что общая функция будет применяться к пакетному файлу. Примите входные данные как два пути, запустите цикл FOR для подсчета файлов и сравнения. Увидеть Вот для подсчета файлов в цикле FOR.

Function Count-Folders{
Param
(
[parameter(Mandatory=$true,Position=1)][string]$source,
[parameter(Mandatory=$true,Position=2)][string]$dest
)

$path = @(gci -Path $source -dir)
$path2 = @(gci -Path $dest -dir)

If($path.Length -eq $path2.Length){
"Matches"} Else{
"input folder counts do not match, check again!!!"}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector