Sign in to follow this  
Followers 0
johnmcloud

FileOpenDialog - Exclude extension?

11 posts in this topic

#1 ·  Posted (edited)

Hi guys i have a question,

Can i exclude a extension from FileOpenDialog? Example i want to include all file ( *.*) except txt ( *.txt )

My solution for now is:

$Exstension = StringRegExpReplace(@WorkingDir & "Test.txt", "^.*.", "")
If $Exstension = "txt" Then
MsgBox(0,0,"Error")
Return
EndIf

But i like to make it unselectable in FileOpenDialog like the classic filter, but in an opposite way.

Is possible?

Thanks

Edited by johnmcloud

Share this post


Link to post
Share on other sites



I don't think this can be done with function FileOpenDialog. Write your own version as described


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

Hi water,

I that version i see in the Dialog GUI the file/extesion, so is the same result like mine StringRegExpReplace. I don't want to see that file/extension, do you think is not possible?

Share this post


Link to post
Share on other sites

In short: No

The link I posted is the only thread I found on the subject.

Google doesn't offer any additional information on this subject.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

@JohnOne

Start the GUI from zero, using the recursive search, all the button with differect function, the treeview etc. i think will be more slower that the native fuction.

I thought there was a way to change/edit the native function and excluding an extension, but seems doesn't exist

Share this post


Link to post
Share on other sites

johnmcloud,

Take a look at my ChooseFileFolder UDF. I could look at adapting that to exclude certain files if you felt it was a suitable replacement for the standard dialog. :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

#8 ·  Posted (edited)

Melba,

I have try to download the .zip but i see inside only:

ChooseFileFolder

Without the extension and nothing else :mellow:

Edited by johnmcloud

Share this post


Link to post
Share on other sites

#9 ·  Posted (edited)

johnmcloud,

Unsurprisingly it does not do that for me. :D

I have heard of this happening before - save the file you can see, add a .zip extension and look inside again. ;)

M23

Edited by Melba23
Typnig!

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Oh, now i can see inside :D

I'll check it out, thanks

Share this post


Link to post
Share on other sites

johnmcloud,

The ChooseFileFolder UDF can now exclude files if you want to try it. :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
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
Sign in to follow this  
Followers 0

  • Similar Content

    • PINTO1927
      By PINTO1927
      Hello guys,
      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[0] _FileReadToArray($URL[$t], $LINE) For $u = 1 To $LINE[0] FileCopy($URL[$u], $DIR_DEST) Next Next the selected files via OpenFileDialog must be copied to the folder $DIR_DEST.
       
    • rootx
      By rootx
      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)  
    • Slym
      By Slym
      Hi there,
      There is something weird with FileSaveDialog. It takes approximately 8 seconds on my computer to return after clicking on OK.
      When compiling this exact code it looks faster but I still have this slow behaviour on another compiled software (LinuxLive USB Creator).
      $DEBUG_TIMER=TimerInit() $source_file = FileOpenDialog("Please choose an ISO image of LinuxLive CD", "", "ISO / IMG / ZIP (*.iso;*.img;*.zip)", 1,"") ConsoleWrite("It took "&Round(TimerDiff($DEBUG_TIMER)/1000,1)&" seconds to select ISO") Do you know what could cause this ?
      Thank you for your help
       
      PS : I'm still looking for AutoIT devs to help me on LinuxLive USB Creator. If interested, please contact me.
    • AlexChernavsky
      By AlexChernavsky
      I'm having a strange issue with using FileOpenDialog to select a file. Everything works fine the first time you select a file. But if you change your mind (while the program is still running) and want to select a different file, nothing changes. The program is "stuck" with the first selection you made, and nothing you do will change that selection in the input box.

      I pulled the function below out of my program, and I had to modify it a bit to make it run on its own. But it's basically the same as the original.

      To see the problem in action, click on either of the two buttons that say, "Choose other file...". Select any file from the list. Click on the "Open" button. So far, so good. Now, repeat the process again. See? The original file you selected is still listed in the input box.

      I'm stumped by this one.

      Thanks in advance.

      -- Alex Chernavsky in Rochester, NY


      #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <EditConstants.au3> _ConfirmParametersWithUser("test.txt", "test2.txt", 16, 1000, 3000, "InputFile", "WriteToFile", "Testing") Func _ConfirmParametersWithUser($sInputFileName, $sOutputFileName, $iNumberOfProblems, $iMinTime, $iMaxTime, $sSourceOfProblems, $sOutputType, $sCondition) Local $hSetParametersForm ; Handle to GUI Local $hRadio1 Local $hRadio2 Local $hRadio3 Local $hRadio4 Local $hInputFileName Local $hChooseInputFile Local $hOutputFileName Local $hChooseOutputFile Local $hTrialsPerSession Local $hTime1 Local $hTime2 Local $hCondition Local $hExitButton Local $hHelpButton Local $hContinueButton Local $nMsg Local $sTemp $sInputFileName = @ScriptDir & "\" & $sInputFileName $sOutputFileName = @ScriptDir & "\" & $sOutputFileName $hSetParametersForm = GUICreate("Reaction Time Program: Set Parameters", 580, 578, -1, -1) GUICtrlCreateLabel("Reaction Time Program", 175, 3, 205, 23) GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Based on work by Seth Roberts", 200, 29, 155, 15) GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif") ;GUICtrlSetBkColor(-1, 0xCCFFCC) ; Give it a green background to make it easier to position it (it's a temporary thing to help design the GUI) GUICtrlCreateGroup("Source of arithmetic problems: ", 40, 50, 528, 105) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") GUIStartGroup() $hRadio1 = GUICtrlCreateRadio("Use problems included with source code", 64, 80, 257, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sSourceOfProblems = "SourceCode" Then GUICtrlSetState(-1, $GUI_CHECKED) EndIf $hRadio2 = GUICtrlCreateRadio("Read problems from input file: ", 64, 104, 280, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sSourceOfProblems = "InputFile" Then GUICtrlSetState(-1, $GUI_CHECKED) EndIf $hInputFileName = GUICtrlCreateInput($sInputFileName & " ", 81, 124, 380, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetState($hInputFileName, $GUI_FOCUS) Send("{end}") ; This line and the one before it are necessary to right-align the text (useful in case of long path names, so that the left part gets cut off, not the right part) $hChooseInputFile = GUICtrlCreateButton("Choose other file...", 465, 121) If $sSourceOfProblems = "InputFile" Then GUICtrlSetState($hChooseInputFile, $GUI_ENABLE) Else GUICtrlSetState($hChooseInputFile, $GUI_DISABLE) EndIf GUICtrlCreateLabel("Number of trials (problems) presented per testing session:", 48, 167, 345, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hTrialsPerSession = GUICtrlCreateInput($iNumberOfProblems, 397, 165, 30, 22, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlCreateGroup("Random delay between trials (in milliseconds): ", 40, 198, 349, 89) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Minimum delay:", 64, 224, 97, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlCreateLabel("Maximum delay :", 64, 256, 104, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hTime1 = GUICtrlCreateInput($iMinTime, 176, 224, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) $hTime2 = GUICtrlCreateInput($iMaxTime, 176, 256, 41, 21, BitOR($GUI_SS_DEFAULT_INPUT, $ES_NUMBER)) GUICtrlCreateGroup("Upon completion of the testing session: ", 40, 296, 528, 110) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") $hRadio3 = GUICtrlCreateRadio("Display summary and append data to output file: ", 64, 325, 422, 17) If $sOutputType = "WriteToFile" Then GUICtrlSetState(-1, $GUI_CHECKED) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hOutputFileName = GUICtrlCreateInput($sOutputFileName & " ", 81, 350, 380, 20) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") GUICtrlSetState($hOutputFileName, $GUI_FOCUS) Send("{end}") ; This line and the one before it are necessary to right-align the text (useful in case of long path names, so that the left part gets cut off, not the right part) $hChooseOutputFile = GUICtrlCreateButton("Choose other file...", 465, 347) If $sOutputType = "WriteToFile" Then GUICtrlSetState($hChooseOutputFile, $GUI_ENABLE) Else GUICtrlSetState($hChooseOutputFile, $GUI_DISABLE) EndIf $hRadio4 = GUICtrlCreateRadio("Display summary but do not write data to output file", 64, 379, 320, 17) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") If $sOutputType = "DisplayOnly" Then GUICtrlSetState(-1, $GUI_CHECKED) GUICtrlCreateGroup("Please describe the condition for this test:", 40, 417, 520, 90) GUICtrlSetFont(-1, 12, 400, 0, "MS Sans Serif") $hCondition = GUICtrlCreateInput("", 54, 447, 500, 20) GUICtrlCreateLabel("Example: ""45 mins. after taking 3 tablespoons of flaxseed oil""", 56, 477, 550, 28) GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") $hHelpButton = GUICtrlCreateButton("Help", 272, 534, 75, 25) $hContinueButton = GUICtrlCreateButton("Continue", 382, 534, 75, 25, $BS_DEFPUSHBUTTON) $hExitButton = GUICtrlCreateButton("Exit Program", 488, 534, 75, 25) GUICtrlSetState($hCondition, $GUI_FOCUS) ; Set the focus to the "Condition" input box GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $hRadio1 GUICtrlSetState($hChooseInputFile, $GUI_DISABLE) Case $hRadio2 GUICtrlSetState($hChooseInputFile, $GUI_ENABLE) Case $hRadio3 GUICtrlSetState($hChooseOutputFile, $GUI_ENABLE) Case $hRadio4 GUICtrlSetState($hChooseOutputFile, $GUI_DISABLE) Case $hChooseInputFile $sTemp = FileOpenDialog("Choose input file", @ScriptDir & "\", "All files (*.*)", 1 + 2) If $sTemp Then $sInputFileName = $sTemp $hInputFileName = GUICtrlSetData($hInputFileName, $sInputFileName & " ") EndIf GUICtrlSetState($hCondition, $GUI_FOCUS) ; Return focus to the "Continue" button Case $hChooseOutputFile $sTemp = FileOpenDialog("Choose output file", @ScriptDir & "\", "All files (*.*)", 2 + 8) If $sTemp Then $sOutputFileName = $sTemp $hOutputFileName = GUICtrlSetData($hOutputFileName, $sOutputFileName & " ") EndIf GUICtrlSetState($hCondition, $GUI_FOCUS) ; Return focus to the "Continue" button Case $hHelpButton ShellExecute("http://www.astrocyte-design.com/reaction-time/index.html") Case $hContinueButton ExitLoop Case $hExitButton Exit EndSwitch WEnd If (BitAND(GUICtrlRead($hRadio1), $GUI_CHECKED) = $GUI_CHECKED) Then $sSourceOfProblems = "SourceCode" Else $sSourceOfProblems = "InputFile" EndIf $iNumberOfProblems = GUICtrlRead($hTrialsPerSession) $iMinTime = GUICtrlRead($hTime1) $iMaxTime = GUICtrlRead($hTime2) If (BitAND(GUICtrlRead($hRadio3), $GUI_CHECKED) = $GUI_CHECKED) Then $sOutputType = "WriteToFile" Else $sOutputType = "DisplayOnly" EndIf $sCondition = GUICtrlRead($hCondition) $sCondition = StringReplace($sCondition, ",", "") ; Remove any commas that the user happens to enter (they interfere with the CSV file format) GUIDelete($hSetParametersForm) EndFunc ;==>_ConfirmParametersWithUser
    • blademonkey
      By blademonkey
      Greetings,

      wow, it's been a while since i've posted in here (4+ years). it's good to be back and to see that AutoIt is going on strong.

      Here's the behavior i'm trying to understand.

      background: I have a specific Autoit application that invokes a fileopendialog. The initdir parameter is set to @scriptdir.

      When running a single instance of the application, the fileopendialog behaves as expected. The fileopendialog window opens and the folder location is correctly set to the @scriptdir location (of that instance).

      When running a second or third instance (where the exes themselves are located in a different location), the fileopendialog sets the initdir to one of the first two initdir (aka @scriptdir) locations.

      this is a little frustating, and im not sure how to control this behavior, since i dont exactly know when and where @scriptdir is technically fetching its information.

      I've tried assigning the @scriptdir setting to a user defined variable @curfolder in the begining of my script, which works well in scite, but not when compiled. I have several theories (one is that multiple instances somehow share the same variables/PID) but would like to get confirmation on what is driving this behavior.

      I've also tried using @scriptfullpath.

      Any help is appreciated. hopefully i've described the situation well enough, let me know if have not.