当我使用 Windows 资源管理器浏览 FTP 站点时,它默认为平铺视图。我需要它默认为列表视图。
我没有看到注册表设置,并且标准 [工具 -> 文件夹选项... -> 查看 -> 应用于文件夹] 显然对 FTP 站点没有影响。
答案1
为了记录,这是在 W7 SP1 和 W10 v1511 上测试的部分解决方法。
运行批处理脚本重置所有文件夹的文件夹视图设置。
导入到注册表:
Windows 注册表编辑器版本 5.00 ;我的电脑 [HKEY_CURRENT_USER\Software\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\ShellFolder] "文件夹类型"="" ;Microsoft FTP 文件夹 [HKEY_CURRENT_USER\Software\Classes\CLSID\{63da6ec0-2e98-11cf-8d82-444553540000}\ShellFolder] "文件夹类型"="" [HKEY_CURRENT_USER\Software\Classes\Local Settings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell\{00000000-0000-0000-0000-00000000000}] “LogicalViewMode”=dword:00000001 “模式”=dword:00000000
3a. 运行explorer shell:mycomputerfolder
后您应该会看到My Computer
在详细信息视图中打开了。
3b. 运行explorer ftp://your.site.com
后它应该保留在详细信息视图中只要您无需点击导航窗格中的站点图标(如果存在Add Network Location
)。
您可以创建一个带有位置的快捷方式explorer ftp://your.site.com
以方便使用。
参考:
平铺视图中的 Windows 8 桌面图标(配置LogicalViewMode
其他视图模式)
配置通过 MTP 连接的存储的默认文件夹视图(这会将所有文件夹视图设置为相同模式)
答案2
我编写这个是为了使用 Autoit:只需运行脚本,您的 ftp explorer 窗口在第一次查看时应该处于列表视图中。它还不完美,但它具有您想要的基本功能。还需要我找到的库这里。
在 Windows 7 64 位上测试。
#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
附录:您可能需要将“AutomatingWindowsExplorer.au3”的第 257 行从更改If @OSVersion "WIN_XP" Then
为If @OSVersion <> "WIN_XP" Then
答案3
如何将列表视图设置为 Windows 资源管理器中的默认 FTP 视图?
我想出了一个简单的解决方案,使用以下任一方法下面两种方法您可能会发现这对您使用原生内置 Windows 技术的查询很有帮助。
我不确定这是否是您正在寻找的解决此问题的实际解决方案,但它至少可能是一种可接受的解决方法,您可能会发现它很有用,而无需更改注册表设置、使用第三方解决方案等。
本质上这使用发送键发送Ctrl+Shift+6快捷键将视图更改为细节在 FTP 文件夹视图打开之后——但这并不递归应用,因此这可能会或可能不会对您的特定需求产生影响。
方法 1(可扩展)
此方法包括:(1)使用以下逻辑创建一个批处理脚本;(2)然后创建一个指向该批处理脚本的短脚本,然后让它的参数传递您要连接的 FTP 服务器的适用 FTP 连接详细信息。
为此方法创建的这个批处理脚本可以用于您希望使用此方法的任意数量的快捷方式,因此如果您将来需要的不仅仅是一个 FTP 连接,它是一个可扩展的解决方案。
创建批处理脚本
.cmd
创建一个批处理脚本,它只是一个以或扩展名保存的文本文档文件,.bat
其中包含以下逻辑,然后将其保存到您将在创建快捷方式部分中创建的快捷方式中引用的某个路径。@ECHO OFF %~1 :VBSDynamicBuild SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%" ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%" ECHO Wscript.Sleep 900 >>"%TempVBSFile%" ECHO WshShell.SendKeys "^+6" >>"%TempVBSFile% ECHO Wscript.Sleep 900 >>"%TempVBSFile%" CSCRIPT //nologo "%TempVBSFile%" EXIT /B
创建快捷方式
在桌面上单击鼠标右键,然后选择新的->捷径并在保存刚刚创建的批处理脚本(上面)的位置插入以下值,并确保根据需要设置
<username>
、、<password>
值,选择<FTP server URL or IP address>
下一个然后给 FTP 快捷方式起一个有意义的名字,以便您以后知道它是什么,然后选择节省.(见下面的屏幕截图)D:\BatchScripts\OpenFTPDetailView.cmd "%windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/"
重要的:重要的是,
%windir%\explorer.exe ftp://<Username>:<password>@<FTP server URL or IP address>/"
上面的快捷方式属性部分中的 " 值周围有双引号。使用它
现在你需要做的就是双击你为其创建的快捷方式来打开 FTP 文件夹细节视图,一切就这么简单。您也可以根据需要更改此快捷方式上的图标。
方法 2(每个脚本静态)
该方法类似于方法 1但您不需要创建快捷方式即可工作,但您仍然需要根据需要为要连接的 FTP 服务器设置<username>
、<password>
、值。<FTP server URL or IP address>
创建批处理脚本
.cmd
创建一个批处理脚本,它只是一个以或扩展名保存的文本文档文件,.bat
其中包含以下逻辑,然后将其保存到您将用来双击执行它的某个路径。@ECHO OFF %windir%\explorer.exe ftp://<username>:<password>@<FTP server URL or IP address>/ :VBSDynamicBuild SET TempVBSFile=%temp%\~tmpSendKeysTemp.vbs IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%" ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%" ECHO Wscript.Sleep 900 >>"%TempVBSFile%" ECHO WshShell.SendKeys "^+6" >>"%TempVBSFile% ECHO Wscript.Sleep 900 >>"%TempVBSFile%" CSCRIPT //nologo "%TempVBSFile%" EXIT /B
使用它
现在你需要做的就是双击为其创建的批处理脚本,使用以下命令打开 FTP 文件夹细节视图,就像这样简单地向前移动。