# File.utime returns Invalid argument on Windows (winXP, ruby

**URL:** <https://www.ruby-forum.com/t/file-utime-returns-invalid-argument-on-windows-winxp-ruby/106028>\
**Category:** Ruby\
**Created:** [June 5, 2007, 7:55pm UTC](https://www.ruby-forum.com/t/file-utime-returns-invalid-argument-on-windows-winxp-ruby/106028 "2007-06-05T19:55:26Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Matt\_Scilipoti](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/48db29/32.png) [@Matt\_Scilipoti](https://www.ruby-forum.com/u/Matt_Scilipoti)\
**Post date:** [June 5, 2007, 7:55pm UTC](https://www.ruby-forum.com/t/file-utime-returns-invalid-argument-on-windows-winxp-ruby/106028/1 "2007-06-05T19:55:26Z")

</div>

I am receiving an “Invalid argument” error from File.utime.

irb\> testfile = ‘d:/temp/2007/06/test.txt’  
=\> “d:/temp/2007/06/test.txt”  
irb\> File.utime(0, Time.now, testfile)  
Errno::EINVAL: Invalid argument - d:/temp/2007/06/test.txt  
from (irb):4:in `utime’  
from (irb):4  
irb\> File.exist?(testfile)  
=\> true  
irb\> File.writable?(testfile)  
=\> true

My local user group suggested:  
irb\> require ‘time’  
=\> false

False?

I tried this on two computers:  
| WinXP SP2 | WinXP SP2 |  
| Ruby 1.8.6 | 1.8.5 |  
| NTFS | FAT32 |

A friend has these same specs, but it works for him.  
Google for ‘ruby, windows, File.utime, “Invalid Argument”’ (and various  
versions  
of this) doesn’t help. It does appear in a nice Ruby poetry jam.

Any ideas?

---

<div class="post-metadata">

**Author:** ![Matt\_Scilipoti](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/48db29/32.png) [@Matt\_Scilipoti](https://www.ruby-forum.com/u/Matt_Scilipoti)\
**Post date:** [June 6, 2007, 4:36pm UTC](https://www.ruby-forum.com/t/file-utime-returns-invalid-argument-on-windows-winxp-ruby/106028/2 "2007-06-06T16:36:42Z")

</div>

On Jun 5, 11:55 am, “Matt Scilipoti” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> irb\> File.writable?(testfile)  
> =\> true

Is D: a hard disk? Or is it a CDROM, usb drive, etc? Hey, gotta ask.

> My local user group suggested:  
> irb\> require ‘time’  
> =\> false
> 
> False?

Unrelated. It means it was already loaded, probably by rubygems. An  
actual failure would raise an error.

Regards,

Dan

---

<div class="post-metadata">

**Author:** ![Matt\_Scilipoti](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/48db29/32.png) [@Matt\_Scilipoti](https://www.ruby-forum.com/u/Matt_Scilipoti)\
**Post date:** [June 6, 2007, 4:59pm UTC](https://www.ruby-forum.com/t/file-utime-returns-invalid-argument-on-windows-winxp-ruby/106028/3 "2007-06-06T16:59:48Z")

</div>

Solved (mostly), thanks to:

Nicholas E., who suggested that Windows may not accept a date of 0  
(the first param sets access time). It doesn’t. I knew that. Bad  
brain. Thanks for asking an “is it plugged in” type of question.

Daniel B., for reminding me that “require ‘x’ -\> false” doesn’t  
mean “we can’t find ‘x’” - it just means that it is ALREADY required.  
I knew that too. Funny how, in this context, I easily accepted an  
incorrect translation of the results, because it was corroborating  
evidence - exactly what I was looking for. And thanks for another “is  
it plugged in?” question. Yes, D: drive is a hard drive. 🙂

Why “mostly”? This code is derived from a battery of tests for a  
project in a User Group. These tests pass for another Windows user.  
We will investigate next meeting.

Thanks to all,  
Matt
