Re: systematic file(s) deletion
"NickName" <dadada@rock.com> wrote in message
news:1167423254.478385.176790@h40g2000cwb.googlegroups.com...
Oliver Wong wrote:
"NickName" <dadada@rock.com> wrote in message
news:1167410842.616675.124890@h40g2000cwb.googlegroups.com...
long ftime = fd.lastModified();
// test output of the file day value
System.out.println(ftime);
// result: 0
// comment: bad
// question: what's wrong?
This is much better. See the javadocs
http://java.sun.com/javase/6/docs/api/java/io/File.html
<quote>
Returns:
A long value representing the time the file was last modified,
measured
in milliseconds since the epoch (00:00:00 GMT, January 1, 1970), or 0L if
the file does not exist or if an I/O error occurs
</quote>
So either the file does not exist, or an I/O error occurred. Did you
try
checking the output of fd.exists() ?
Ok, I now changed the code to the following (please see embeded
comments) below:
// list files
// the Temp directory has 10 files, of which one
file name includes white spaces
File dir = new File("Temp");
String[] children = dir.list();
if (children == null) {
} else {
for (int i = 0; i < children.length; i++) {
String filename = children[i];
// test file existence
boolean exist = (new
File(filename)).exists();
if (exist) {
System.out.println(filename);
}
else {
System.out.println("file instantiation
failed for " + filename +
"why? because it has already been instantiated?");
}
}
Thanks. Would this technique not be able to solve this problem?
I'm not sure what problem you're referring to when you say "this
problem". It won't magically create a file, if that's the problem you're
trying to solve. Not that whether or not a file exists on the file system
has nothing to do with the JVM's instantiation of objects. Consider this
example code to gain some enlightment as to what the exist() does:
public class Example {
public static boolean checkFileExists(String pathToFile) {
File temp = new File(pathToFile);
return temp.exists();
}
public static void main(String[] args) {
if (checkFileExists("C:/autoexec.bat")) {
System.out.println("You have an autoexec.bat file in the root of your
C drive.");
} else {
System.out.println("You don't have an autoexec.bat file in the root of
your C drive.");
}
}
}
Notice that this program always instantiates exactly 1 file object,
regard of whether or not you have an autoexec.bat file on your file system.
- Oliver