Jump to content

FileOpenDialog restricted to one folder


darkleton
 Share

Recommended Posts

I have a script that prompts a user for a folder to use (fileselectfolder) and then uses that folder for the fileopendialog for them to select a file.

what i want though is for the fileopendialog box to be restricted JUST to that folder.

as it stands, fileselectfolder could have c:\test\ selected, and clicking the fileopendialog button will default to c:\test\ but allows them to move up a folder. i need it to restrict them to selecting a file only in the given folder. is that possible?

These are the two functions I have which work perfectly, I just need that restriction if it can be done?

Func LocalFolder()
    $localmsifolder = FileSelectFolder("","")
    GUICtrlSetData($localmsifolderinput, $localmsifolder & "\")
    $remotemsifolder = StringRegExpReplace($localmsifolder, "^.*\\", "")
EndFunc

Func LocalFile()
    $localmsifile = FileOpenDialog("", $localmsifolder, "MSI Files (*.msi)", 1 + 2)
    GUICtrlSetData($localmsifileinput, $localmsifile)
    $localmsifilename = StringRegExpReplace($localmsifile, "^.*\\", "")
EndFunc

Thanks in advance

Mike

Link to comment
Share on other sites

I don't think so !

but you can add a condition after select the file

$_Dir = "c:\test\"

Do 
    $localmsifolder = FileOpenDialog ( "Choose the file", $_Dir, '(*.msi)' )
    ConsoleWrite ( "$localmsifolder : " & $localmsifolder & @Crlf )
Until   StringInStr ( $localmsifolder, $_Dir ) <> 0

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Link to comment
Share on other sites

I have a script that prompts a user for a folder to use (fileselectfolder) and then uses that folder for the fileopendialog for them to select a file.

what i want though is for the fileopendialog box to be restricted JUST to that folder.

as it stands, fileselectfolder could have c:\test\ selected, and clicking the fileopendialog button will default to c:\test\ but allows them to move up a folder. i need it to restrict them to selecting a file only in the given folder. is that possible?

These are the two functions I have which work perfectly, I just need that restriction if it can be done?

Func LocalFolder()
    $localmsifolder = FileSelectFolder("","")
    GUICtrlSetData($localmsifolderinput, $localmsifolder & "\")
    $remotemsifolder = StringRegExpReplace($localmsifolder, "^.*\\", "")
EndFunc

Func LocalFile()
    $localmsifile = FileOpenDialog("", $localmsifolder, "MSI Files (*.msi)", 1 + 2)
    GUICtrlSetData($localmsifileinput, $localmsifile)
    $localmsifilename = StringRegExpReplace($localmsifile, "^.*\\", "")
EndFunc

Thanks in advance

Mike

_FileOpenDialog()
_FileSelectFolder()
Func _FileOpenDialog($DialogTitle = "DialogTitle",$defaultPath = "C:\test\",$filter = "All (*.*)",$options = 8,$defaultFilename = "defaultFilename",$Guihwnd =0)
$var = FileOpenDialog ($DialogTitle,$defaultPath,$filter,$options,$defaultFilename,$Guihwnd)
if Not @error Then
Local $OutPath
$TexArray = StringSplit($var,"\")
For $i = 1 To $TexArray[0]
$OutPath &= $TexArray[$i] & "\"
if $i = $TexArray[0] Then $OutPath = StringTrimRight($OutPath,1)
Next
MsgBox(0,"MSG",$OutPath)
Else
if @error = 1 Then MsgBox(0,"MSG","File selection failed")
if @error = 2 Then MsgBox(0,"MSG","Bad file filter ")
EndIf
EndFunc

Func _FileSelectFolder($DialogText = "DialogText",$RootDir = "C:\",$Flag = 3, $InitialDir = "C:\test\",$Guihwnd = 0)
$var = FileSelectFolder ($DialogText,$RootDir,$Flag,$InitialDir,$Guihwnd)
if Not @error Then
Local $OutPath
$TexArray = StringSplit($var,"\")
For $i = 1 To $TexArray[0]
$OutPath &= $TexArray[$i] & "\"
if $i = $TexArray[0] Then $OutPath = StringTrimRight($OutPath,1)
Next
MsgBox(0,"MSG",$OutPath)
Else
if @error = 1 Then MsgBox(0,"MSG","user cancels/closes the window.")
EndIf
EndFunc

صرح السماء كان هنا

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...