Ruby Dir.entries не «видит» все мои файлы - PullRequest
0 голосов
/ 05 марта 2011

У меня есть следующий код:

Dir.chdir(mydir)
Dir.entries(mydir).each do |file|
  log.info(file)
end

Моя проблема в том, что Dir.entries не "видит" три последних созданных файла в каталоге; то есть они не отображаются в журнале. Я использую Ruby 1.9.2 на Windows XP. Файлы были созданы непосредственно перед указанным кодом с помощью командного файла StatTransfer:

# Run the stcmd file and wait for it to finish
threadC = Thread.new {system("ST \"myStatTransferProgram.stcmd\"")}
threadC.join

Я не думаю, что StatTransfer является проблемой, потому что Dir.entries может "видеть" первые несколько файлов, созданных файлом stcmd, просто отлично. Я попытался добавить sleep(30) между двумя шагами на случай, если Thread.join не сделает то, что я думаю, но это не имело значения. Я новичок в Ruby и буду признателен за любые предложения - спасибо!

Ответы [ 2 ]

0 голосов
/ 07 марта 2011

Я не совсем уверен, что происходит, но похоже, что проблема была связана с File.rename на более раннем этапе, а не с этапом, с которым я думал, что это было связано. Я извиняюсь за то, что веду людей по неверному пути. Если кому-то нужна дополнительная информация, просто дайте мне знать.

0 голосов
/ 05 марта 2011

Есть ли какая-то причина, по которой вы создаете поток, а затем присоединяетесь к нему при непосредственном запуске команды system, чтобы иметь точно такой же эффект?

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