[Mono-bugs] [Bug 370385] New: SaveFileDialog selects directory as filename without intent

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Thu Mar 13 10:44:25 EDT 2008


           Summary: SaveFileDialog selects directory as filename without
           Product: Mono: Class Libraries
           Version: 1.2.6
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Windows.Forms
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: andyhume32 at yahoo.co.uk
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---

Created an attachment (id=201258)
 --> (https://bugzilla.novell.com/attachment.cgi?id=201258)
possible patch

When using SaveFileDialog, before entering the intended file path and hitting
OK, the dialog suddenly completes simply when changing directory.  One is just
clicking away to get to the necessary directory and boom the dialog has ok'd
itself, the result save file path is thus /aa/bb/cc where cc is a directory --
the last one clicked. :-(

Occurs on Linux and Windows, and in all tested Mono versions.

Debugging showed that this effect occurs for directories that have another
"Attribute" set, for instance 'read-only'.  Repro is thus:
* Linux
mkdir foobar_readonly
chmod 444 foobar_readonly
Run repro app and attempt to return a save file path of
".../foobar_readonly/file.txt".  On attempting to open the directory the dialog
will exit.
* Windows
Same, but set read-only with "attrib +r foobar_readonly".

This occurs because clicking on a file item its name is copied to the filename
textbox.  But the check for a directory needs to be:
  if ((fsEntry.Attributes & FileAttributes.Directory) ==
FileAttributes.Directory) {
rather than:
  if (fsEntry.Attributes == FileAttributes.Directory) {

Directory which have read-only set by default in Windows include "My
Documents", thus likely that a user will hit this.

Patch attached, which repeats that change for all such == and !=.

Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.

More information about the mono-bugs mailing list