Perché il codice seguente gira solo su Windows 8 e non su Ubuntu? Sul libro c'è scritto di provare a sostituire Basis con Posix ma non c'è verso. Il file test si trova in un disco dedicato solo al salvataggio dei dati e partizionato con file NTFS.
codice:// Obtain information about a path and a file. // Requires JDK 7 or later. import java.io.*; import java.nio.file.*; import java.nio.file.attribute.*; class Esempio { public static void main(String args[]) { Path filepath = Paths.get("examples\\test.txt"); System.out.println("File Name: " + filepath.getName(1)); System.out.println("Path: " + filepath); System.out.println("Absolute Path: " + filepath.toAbsolutePath()); System.out.println("Parent: " + filepath.getParent()); if(Files.exists(filepath)) System.out.println("File exists"); else System.out.println("File does not exist"); try { if(Files.isHidden(filepath)) System.out.println("File is hidden"); else System.out.println("File is not hidden"); } catch(IOException e) { System.out.println("I/O Error: " + e); } Files.isWritable(filepath); System.out.println("File is writeable"); Files.isReadable(filepath); System.out.println("File is readable"); try { BasicFileAttributes attribs = Files.readAttributes(filepath, BasicFileAttributes.class); if(attribs.isDirectory()) System.out.println("The file is a directory"); else System.out.println("The file is not a directory"); if(attribs.isRegularFile()) System.out.println("The file is a normal file"); else System.out.println("The file is not a normal file"); if(attribs.isSymbolicLink()) System.out.println("The file is a symbolic link"); else System.out.println("The file is not a symbolic link"); System.out.println("File last modified: " + attribs.lastModifiedTime()); System.out.println("File size: " + attribs.size() + " Bytes"); } catch(IOException e) { System.out.println("Error reading attributes: " + e); } } }
Su Ubuntu + Eclipce ottengo:
codice:Exception in thread "main" java.lang.IllegalArgumentException at sun.nio.fs.UnixPath.getName(UnixPath.java:323) at sun.nio.fs.UnixPath.getName(UnixPath.java:43) at Esempio.main(Esempio.java:12)


Rispondi quotando