Jump to content

Getting a Folder Path From Open/Save Dialog Box


Default
 Share

Recommended Posts

Is there a way to accurately get the current folder path from an open/save dialog box?

At the moment I'm using _GUICtrlComboBox_GetListArray on ComboBox1 and then combining the folder names to get the path. This works really well most of the time, but isn't totally reliable. Usually the combo box doesn't display other folders at the same level as the curent folder, but ocassionally it does and this makes things trickier.

Is there an easier way to determine the folder path?

Link to comment
Share on other sites

Is there a way to accurately get the current folder path from an open/save dialog box?

At the moment I'm using _GUICtrlComboBox_GetListArray on ComboBox1 and then combining the folder names to get the path. This works really well most of the time, but isn't totally reliable. Usually the combo box doesn't display other folders at the same level as the curent folder, but ocassionally it does and this makes things trickier.

Is there an easier way to determine the folder path?

Try FileSelectFolder(), is more easy.

When the words fail... music speaks.

Link to comment
Share on other sites

Try FileSelectFolder(), is more easy.

Thanks for the reply.

Unfortunately FileSelectFolder() simply starts a Browse For Folder dialog box, and doesn't help me get the folder path from an open/save dialog box.

EDIT:

I've tried to figure out a way of using this:

GetCurrentDirectory Function

http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx

.. but I haven't been very succesful. Any help would be appreciated.

Edited by Default
Link to comment
Share on other sites

Thanks for the reply.

Unfortunately FileSelectFolder() simply starts a Browse For Folder dialog box, and doesn't help me get the folder path from an open/save dialog box.

EDIT:

I've tried to figure out a way of using this:

GetCurrentDirectory Function

http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx

.. but I haven't been very succesful. Any help would be appreciated.

You could look at FileOpenDialog() and FileSaveDialog() functions as a possibility.

; From press F1 - Help - in Scite 
;      FileOpenDialog (         "title",        "init dir",             "filter" [, options [, "default name" [, hwnd]]] )
$var = FileOpenDialog ("Open Something", @WindowsDir & "\", "Images (*.jpg;*.bmp)", 1 + 4 )
MsgBox(0,"",$var)

;$variable = FileSaveDialog ( "title", "init dir", "filter" [, options [, "default name" [, hwnd]]] )
Link to comment
Share on other sites

Afair, he needs to read the current path from such dialog in other application.

I've tried to figure out a way of using this:

GetCurrentDirectory Function

http://msdn.microsoft.com/en-us/library/aa364934(VS.85).aspx

.. but I haven't been very succesful. Any help would be appreciated.

I think it's will not help you, it is the same as @WorkingDir macro...

FileChangeDir(@ProgramFilesDir)
ConsoleWrite(_GetWorkingDir() & @CRLF)

FileChangeDir(@ScriptDir)
ConsoleWrite(_GetWorkingDir() & @CRLF)

Func _GetWorkingDir()
    Local $stCurDir = DllStructCreate("char[256]")
    DllCall("Kernel32.dll", "int", "GetCurrentDirectoryA", "dword", 256, "ptr", DllStructGetPtr($stCurDir))
    If @error Then Return SetError(1, 0, "")
    
    Return DllStructGetData($stCurDir, 1)
EndFunc

 

Spoiler

Using OS: Win 7 Professional, Using AutoIt Ver(s): 3.3.6.1 / 3.3.8.1

AutoIt_Rus_Community.png AutoIt Russian Community

My Work...

Spoiler

AutoIt_Icon_small.pngProjects: ATT - Application Translate Tool {new}| BlockIt - Block files & folders {new}| SIP - Selected Image Preview {new}| SISCABMAN - SciTE Abbreviations Manager {new}| AutoIt Path Switcher | AutoIt Menu for Opera! | YouTube Download Center! | Desktop Icons Restorator | Math Tasks | KeyBoard & Mouse Cleaner | CaptureIt - Capture Images Utility | CheckFileSize Program

AutoIt_Icon_small.pngUDFs: OnAutoItErrorRegister - Handle AutoIt critical errors {new}| AutoIt Syntax Highlight {new}| Opera Library! | Winamp Library | GetFolderToMenu | Custom_InputBox()! | _FileRun UDF | _CheckInput() UDF | _GUIInputSetOnlyNumbers() UDF | _FileGetValidName() UDF | _GUICtrlCreateRadioCBox UDF | _GuiCreateGrid() | _PathSplitByRegExp() | _GUICtrlListView_MoveItems - UDF | GUICtrlSetOnHover_UDF! | _ControlTab UDF! | _MouseSetOnEvent() UDF! | _ProcessListEx - UDF | GUICtrl_SetResizing - UDF! | Mod. for _IniString UDFs | _StringStripChars UDF | _ColorIsDarkShade UDF | _ColorConvertValue UDF | _GUICtrlTab_CoverBackground | CUI_App_UDF | _IncludeScripts UDF | _AutoIt3ExecuteCode | _DragList UDF | Mod. for _ListView_Progress | _ListView_SysLink | _GenerateRandomNumbers | _BlockInputEx | _IsPressedEx | OnAutoItExit Handler | _GUICtrlCreateTFLabel UDF | WinControlSetEvent UDF | Mod. for _DirGetSizeEx UDF
 
AutoIt_Icon_small.pngExamples: 
ScreenSaver Demo - Matrix included | Gui Drag Without pause the script | _WinAttach()! | Turn Off/On Monitor | ComboBox Handler Example | Mod. for "Thinking Box" | Cool "About" Box | TasksBar Imitation Demo

Like the Projects/UDFs/Examples? Please rate the topic (up-right corner of the post header: Rating AutoIt_Rating.gif)

* === My topics === *

==================================================
My_Userbar.gif
==================================================

 

 

 

AutoIt is simple, subtle, elegant. © AutoIt Team

Link to comment
Share on other sites

Afair, he needs to read the current path from such dialog in other application.

I think it's will not help you, it is the same as @WorkingDir macro...

FileChangeDir(@ProgramFilesDir)
ConsoleWrite(_GetWorkingDir() & @CRLF)

FileChangeDir(@ScriptDir)
ConsoleWrite(_GetWorkingDir() & @CRLF)

Func _GetWorkingDir()
    Local $stCurDir = DllStructCreate("char[256]")
    DllCall("Kernel32.dll", "int", "GetCurrentDirectoryA", "dword", 256, "ptr", DllStructGetPtr($stCurDir))
    If @error Then Return SetError(1, 0, "")
    
    Return DllStructGetData($stCurDir, 1)
EndFunc
Thanks for the info.

Is there something similar to GetCurrentDirectory that I can use to get the working directory from another program or process?

I notice that Process Explorer from Sysinternals lists the "Current Directory" of programs and this reflects the open/save folder path. So presumably there is a way...

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...