Duplicate :
|
|
Duplicate :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
|
Relates :
|
Name: rmT116609 Date: 10/17/2003 FULL PRODUCT VERSION : java version "1.4.2_01" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_01-b06) Java HotSpot(TM) Client VM (build 1.4.2_01-b06, mixed mode) FULL OS VERSION : Microsoft Windows XP [Version 5.1.2600] A DESCRIPTION OF THE PROBLEM : File.canWrite() returns false for the user's "My Documents" directory, when specified as the path "c:\documents and settings\<username>\my documents". This is incorrect as the "My Documents" directory is writable. STEPS TO FOLLOW TO REPRODUCE THE PROBLEM : Compile and run the test program below. When the Swing file chooser appears, navigate to your "My Documents" directory via c:\documents and settings\<your username>\my documents Click OK. The debug output will indicate that this directory is not writable. Some subdirectories under "My Documents" are writable - here's some sample output: $ javac Foo.java && java Foo ** Not writable **: C:\Documents and Settings\johnc\My Documents Writable: C:\Documents and Settings\johnc\My Documents\Visual Studio Projects Writable: H: Note, this is not a Swing problem, as the same happens when creating a File object for "c:\documents and settings\johnc\my documents" and calling canWrite() on that. EXPECTED VERSUS ACTUAL BEHAVIOR : EXPECTED - canWrite() should return true for the "My Documents" directory. ACTUAL - canWrite() returns false for the "My Documents" directory. REPRODUCIBILITY : This bug can be reproduced always. ---------- BEGIN SOURCE ---------- import javax.swing.*; import javax.swing.filechooser.*; import java.awt.*; import java.io.File; public class Foo extends JFrame { public static void main(String[] args) { JFrame frame = new JFrame(); JFileChooser chooser = new JFileChooser(); chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setFileHidingEnabled(false); while (true) { int option = chooser.showDialog(frame, "OK"); if (option != JFileChooser.APPROVE_OPTION) continue; File file = chooser.getSelectedFile(); // try { // file = file.getAbsoluteFile(); // file = file.getCanonicalFile(); // } catch (Exception e) { System.out.println("e"); } if (file.canWrite()) { System.out.println("Writable: "+file); } else { System.out.println("** Not writable **: "+file); } chooser.setCurrentDirectory(file); } } } ---------- END SOURCE ---------- (Incident Review ID: 216229) ======================================================================
|