2012-06-02 3 views
0

У меня есть имя файла, объявленное таким образом;Ошибка с именем файла

filename = Time.now.strftime("%H:%M:%S")+'.json' 

и ошибка возникает, когда я делаю это

File.open(filename,'w') do |f| 
f.write(rsp) 
end 

Ошибка в `инициализации»: недопустимый аргумент - 18: 28: 20.json, который я предполагаю, что это из beacuse файла. Когда я делаю какое-то «нормальное» имя, все работает нормально, поэтому любые советы?

+0

Какая ОС? Прекрасно работает для меня. –

+0

Что делать, если вы попытаетесь использовать символ подчеркивания? –

+0

Я использую Windows 7. –

ответ

2

Try:

filename = Time.now.strftime("%H_%M_%S")+'.json' 
1

Windows использует двоеточие в качестве разделителя букв диска; см. this SO question для других специальных символов.

Используйте другой разделитель. Вы могли бы избежать этого, но ИМО, на самом деле это не стоило.

FWIW, для временных названий файлов, я имею тенденцию к yyyymmdd-hhmmss или аналогичным в любом случае.

Для таких вещей, как файлы, всегда полезно включать более полную информацию в вопрос - что соглашения об именах различны в разных ОС, хорошо известны.

+0

В следующий раз, спасибо за ваше время. –

Смежные вопросы