_cFileSelectFolder() is intended as a replacement for native FileSelectFolder() for selecting folders: It implements the left pane of FileSelectFolder(), and goes beyond FileSelectFolder() in several ways.
• It is user friendly and designed to be easy to use;
• New folder, Delete folder and Rename folder controls are optional;
• Its GUI can be placed anywhere, including centred on another window;
• Neither needs nor uses CLSIDs;
• Checks calling parameters rigorously, with the user choosing either to show error messages in a dialog or to set @error and return them to the caller;
• For local and mapped drives, accepts file specifications with drives that can be drive letters, drive labels, or both,
• For local and mapped drives, always returns drive letter:\ ...\ so its output is compatible with native AutoIt functions.
• For UNC paths, returns \\computer\share\...\
• For unmapped drives on computers on the network, offers a shortcut to shares.
• Selecting a treeview item to be highlighted initially is specified in a user-friendly way, including a diagnostic for when the user gets it wrong
• Because it can be called with many arguments, a user can show a list of the arguments / parameters and their values
The root of the treeview can be:
• The Desktop hierarchy with Desktop at the top
• Partial Desktop hierarchy with any other Desktop item at the top, with or without local/mapped drives and file folders, or remote shares and file folders (as appropriate),
• Local/mapped drives and file folders, or
• Remote shares and folders.
The script and example scripts are in the zip file. Documentation beyond what is in the UDF header is in the PDF file, cFileSelectFolder 1_5_0.pdf
Comments and suggestions are most welcome.
I'm working on this script:
Case $BTN Global $URL = FileOpenDialog("IMPORT FILE", $DESKTOP, "ALL FORMAT (*)", 4) $DIR_DEST = "C:\DIR-WORK\list\IMPORT_DOC\" DirCreate($DIR_DEST) Local $LINE For $t = 1 To $URL _FileReadToArray($URL[$t], $LINE) For $u = 1 To $LINE FileCopy($URL[$u], $DIR_DEST) Next Next the selected files via OpenFileDialog must be copied to the folder $DIR_DEST.
I've abandoned the FileSelectFolder() approach and rolled my own UDF to create a dialog containing the folder list in a ListView, which seems to work fine. It's also a better fit to our requirements: we don't really want the user wandering around in the folder-selection dialog, plus the UDF displays some associated info for each folder in a second column. Thanks again to the forum members who took a look at this.
I'm writing an installer script that needs to run as Administrator so it can, e.g., write files into protected directories. The problem is that when I call FileSelectFolder(), there is a 60-second delay before the dialog appears. If I run as an ordinary user (in the Administrators group), there's no delay, but I don't think that will work: for one thing, the installer needs to create a symbolic link, which a member of the Administrators group can't do unless the program is elevated. (This is Win 7 x64.)
(The installer will be run using an Admin account; the other user accounts are locked down and don't have access to the filesystem, the Start menu, Computer, etc. - it's a turnkey system.)
Any idea what causes the delay? And is there a way around it?
Why if I select only one file the array doesn't return the path?? And 4 multiple files return the row PATH? There is a mode to have in the same case signle or multiple selection the path included in the file name? THX
#include <Array.au3> #include <File.au3> Local $spFile $mFile = FileOpenDialog("apri", @ScriptDir & "", "Images (*.iso)", 1 + 4 ) If @error Then ConsoleWrite("error") Else $spFile = StringSplit($mFile, "|") EndIf _ArrayDisplay($spFile)
Hello! , I have a little doubt about the "root dir" parameter in FileSelectFolder, The helpfile states:
1. GUI file tree? Isn't that something like this?:
But the dialog for selecting a folder in FileSelectFolder is similar to the dialog of FileOpenDialog
2. "It limits the choice in the root folder"... "" is considered to be @DesktopDir, then why am I able to select folders outside the Desktop folder?
Thanks in Advance, TD