On Aug 19, 4:42 pm, Eric Sosman <Eric.Sos...@sun.com> wrote:
Danger_Duck wrote:
Why would renameTo ever stop working if I simply change the contents
of the source file (ie, make it longer)?
File res = new File(resultsLocation + "\\results.txt"); //this exists
physically and I can open it.
//I want the name of the results file to be more specific, hence:
File f2 = new File(resultsLocation + "\\" + test.getName() +
"_results.txt");
if (res.renameTo(f2))
System.out.println("success");
The file is never renamed, and "success" is never printed. The
debugger I was using gives the same directory for both of them. Any
ideas why rename stops working?
Lots of possibilities. Maybe the file is locked by some other
process, like the one that's adding data to it. Maybe the new name
you've constructed is invalid (e.g., maybe test.getName() returns
a string containing a '\\' or a ':' or something). Maybe the file
is on a read-only device, or in a directory that grants read access
but denies write access.
Unfortunately, the File class tells you only that the attempted
rename failed, but is secretive about the reason(s) for failure.
Hmm, is there any way to find out these secret reasons for failing (as
in you know anyone at sun who might know the most common causes of
failure to rename)?
Like I said, it worked before
(in fact, I'm using eclipse, and it will work each time I clean boot
it, but as soon as I change the source file, not only does the source
fail but trying to change it back to the ORIGINAL fails also,
requiring another clean boot to get it working again).
is failing.