How to set List view as the default FTP view in Windows Explorer?
When I use Windows Explorer to browse a FTP site, it defaults to Tiles view. I need it to default to List view.
I don't see a registry setting, and the standard [Tools -> Folder Options... -> View -> Apply to Folders] apparently has no effect on FTP sites.
For the record, here is a partial workaround tested on W7 SP1 and W10 v1511.
Run the batch script Reset Folder View Settings of All Folders.
Import to registry:
Windows Registry Editor Version 5.00 ;My Computer [HKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder] "FolderType"="" ;Microsoft FTP Folder [HKEY_CURRENT_USER\Software\Classes\CLSID\{63da6ec0-2e98-11cf-8d82-444553540000}\ShellFolder] "FolderType"="" [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{00000000-0000-0000-0000-000000000000}] "LogicalViewMode"=dword:00000001 "Mode"=dword:00000000
3a. Run explorer shell:mycomputerfolder
and you should see My Computer
opened in details view.
3b. Run explorer ftp://your.site.com
and it should remain in details view as long as you do not press the site icon in the navigation pane (if present by Add Network Location
).
You may create a shortcut with location explorer ftp://your.site.com
for convenience.
References:
Windows 8 Desktop Icons in Tile View (configure LogicalViewMode
for other view modes)
Configure default folder view for storage connected via MTP (this set all folder view to the same mode)
I wrote this to do it with Autoit: just run the script and your ftp explorer windows should be in list view when first viewed. It's not perfect yet but it has the basic functionality you want. Also requires the library I found here.
Tested on Windows 7 64-bit.
#include "Automating Windows Explorer\Includes\AutomatingWindowsExplorer.au3" ;UDF
#include <Array.au3>
Local $str = "Address: ftp" ;part of visible text in explorer control, unique to ftp, I think...
Local $CheckedWindows[5] ;Keep track of activated windows because I don't have a shell hook for window.created
Local $hExplorer
while 1
Sleep(2000)
$hExplorer = WinWaitActive("[CLASS:CabinetWClass]", $str)
If not ContainsElement($CheckedWindows,$hExplorer) then ;Only trigger on a *new* window
setFTPview($str,$hExplorer)
_ArrayAdd($CheckedWindows,$hExplorer)
EndIf
;delete unused handles to prevent aliases or large array, but I don't know the shell hook for window.closed
;alternative is to periodically loop through existing windows and delete non-existing handles (todo)
WEnd
func ContainsElement($arr,$el)
Local $Bound = UBound($arr)
For $i=0 to ($Bound -1)
If $arr[$i] == $el then return True
Next
return False
Endfunc
func setFTPview($str,$hExplorer)
GetIShellBrowser( $hExplorer )
If Not IsObj( $oIShellBrowser ) Then
MsgBox( 0, "Automating Windows Explorer", "Could not get an IShellBrowser interface. Terminating." )
Return
EndIf
GetShellInterfaces() ; Get other interfaces, might not be needed
SetIconView($FVM_LIST)
Sleep(1000)
endfunc
Addendum: you may need to change line 257 of "AutomatingWindowsExplorer.au3" from If @OSVersion "WIN_XP" Then
to If @OSVersion <> "WIN_XP" Then