我正在为我的项目使用 sabre/dav 库,但在阻止默认的 Windows WebDAV 客户端“删除”不应删除的文件时遇到了一些困难。服务器部分的实现是可以的,并且其他客户端(Finder、CyberDuck)显然会抛出并确认禁止状态,这些客户端会以禁止的错误中止用户的删除过程。在 Windows 客户端上返回相同的状态,但它似乎只是“删除”了服务器端仍然可用的文件。通过刷新文件夹,这些文件再次可见。似乎 Win 客户端只是忽略了禁止的响应并虚拟删除了文件夹,因此它不再可见。
更大的问题是,如果出于某种原因您决定删除一个文件夹,其中下面有受保护和不受保护的文件/文件夹,它会删除所有不受保护的文件/文件夹,因为它无法确认第一个(或任何)禁止响应。其他 WebDAV 客户端检测到这一点并停止删除过程,因此指定的文件夹及其子文件夹/文件不会受到影响。
尝试删除文件夹或文件时的禁止响应示例:
HTTP/1.1 403 Forbidden
Server: nginx/1.8.0
Date: Wed, 29 Jul 2015 13:55:11 GMT
Content-Type: application/xml; charset=utf-8
Connection: keep-alive
X-Frame-Options: SAMEORIGIN
X-Powered-By: PHP/5.4.41-1~dotdeb+7.1
X-Sabre-Version: 2.1.3
Vary: Accept-Encoding,User-Agent
Content-Length: 320
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:sabredav-version>2.1.3</s:sabredav-version>
<s:exception>Sabre\DAV\Exception\Forbidden</s:exception>
<s:message>Permission denied to delete node</s:message>
</d:error>
Run Code Online (Sandbox Code Playgroud)
在 Win8.1 x86 上测试了默认的 Win 客户端。
知道如何强制 Win WebDav 客户端检测禁止响应并终止删除过程吗?
谢谢。
在安装 VS Code 时,我们可以选择勾选Open with Code. 我只为文件打了勾,而不是文件夹。那么安装后如何开启呢?
当我打开文件时:

当我打开一个文件夹时:

我想要Open with Code在文件夹中右键单击的选项,就像它显示在文件上一样。
windows-explorer visual-studio-code windows-explorer-integration
基于我在超级用户处收到的答案,很明显我必须将以下内容添加到自定义资源管理器窗口启动器中.我想启动一个rooted explorer视图,只有那个窗口使导航窗格看起来像旧的Windows XP文件夹窗格.我已经编写了一个程序来在"开始"菜单上放置这些文件夹视图的快捷方式,因此更改快捷方式以通过启动程序运行是微不足道的.

Windows 7资源管理器导航窗格http://www.280z28.org/images/NavigationPaneProblems.png
嘿伙计们,我试图获取用户正在使用的文件夹的选定文件.我有以下代码已经运行,但只在桌面文件上:
private string selectedFiles()
{
// get the handle of the desktop listview
IntPtr vHandle = WinApiWrapper.FindWindow("Progman", "Program Manager");
vHandle = WinApiWrapper.FindWindowEx(vHandle, IntPtr.Zero, "SHELLDLL_DefView", null);
vHandle = WinApiWrapper.FindWindowEx(vHandle, IntPtr.Zero, "SysListView32", "FolderView");
//IntPtr vHandle = WinApiWrapper.GetForegroundWindow();
//Get total count of the icons on the desktop
int vItemCount = WinApiWrapper.SendMessage(vHandle, WinApiWrapper.LVM_GETITEMCOUNT, 0, 0);
//MessageBox.Show(vItemCount.ToString());
uint vProcessId;
WinApiWrapper.GetWindowThreadProcessId(vHandle, out vProcessId);
IntPtr vProcess = WinApiWrapper.OpenProcess(WinApiWrapper.PROCESS_VM_OPERATION | WinApiWrapper.PROCESS_VM_READ |
WinApiWrapper.PROCESS_VM_WRITE, false, vProcessId);
IntPtr vPointer = WinApiWrapper.VirtualAllocEx(vProcess, IntPtr.Zero, 4096,
WinApiWrapper.MEM_RESERVE | WinApiWrapper.MEM_COMMIT, WinApiWrapper.PAGE_READWRITE);
try
{
for …Run Code Online (Sandbox Code Playgroud) 我从一个网站上得到了这个提示,在win7中的explorer文件夹中"shift + right click"会给我们一个上下文菜单选项,通过它我可以在那里打开命令提示符.
我正在寻找一个可以使这个更简单的黑客,这样每当我在资源管理器中"右键单击"文件夹时,我总是得到"shift + right click"效果.
我不是在寻找关于powertoys的任何信息.
我正是在上面所说的内容上需要帮助; 必须有一些注册表黑客,使每次右键单击文件夹名称的"转移"默认.
我的installshield项目构建给出了这样的错误:
"ISDEV:致命错误-1014:无法将目录*\Release重命名为*\Release.Bak.Windows资源管理器或DOS提示符可能指向发布输出文件夹(Disk1)的子文件夹或指向Interm文件夹,将其锁定.更改当前目录.关闭Disk1文件夹中的所有打开文件.如果Msidb.exe已打开,请将其关闭."
原因是因为在我开始构建之前,我打开了一个win explorer,它指向了release文件夹.不知怎的,ISDEV认为这是锁定文件夹,因此它拒绝继续重命名.
现在,是否有一种方法,比如添加某种脚本,强制关闭所有打开的win explorer实例,以便在构建脚本启动之前释放所谓的"锁定"?
谢谢!
什么是OSX Finder文件浏览UI和Windows资源管理器文件浏览UI中最准确的基于HTML/JS浏览器的"克隆"?
我有一个PowerShell脚本,可以在登录时创建网络位置的快捷方式.不幸的是,它使用的是旧的低分辨率图标.这无论如何都不是什么大问题,但我想在更高版本的Windows中使用更新的图标.
这是创建快捷方式的函数的相关部分:
# Create the shortcut file
$shortcut = (New-Object -ComObject WScript.Shell).Createshortcut("$shortcutFolder\target.lnk")
$shortcut.TargetPath = $targetPath
if (
$shortcut.IconLocation = "%SystemRoot%\system32\SHELL32.DLL, 275"
$shortcut.Description = $targetPath
$shortcut.WorkingDirectory = $targetPath
$shortcut.Save()
# Set attributes on the files & folders
$desktopIni | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::System -bxor [IO.FileAttributes]::Hidden)
$shortcutFolder | Set-ItemProperty -Name Attributes -Value ([IO.FileAttributes]::ReadOnly)
Run Code Online (Sandbox Code Playgroud)
如您所见,它目前正在使用SHELL32.DLL库中的Icon#275.在Windows 7中,"正确"图标将是imageres.dll中的图标#143.有没有办法从操作系统中获取图标细节,比如在Explorer命名空间中获取对特殊文件夹的引用?
我正在寻找自动化一些资源管理器配置的方法(比如这里找到的:自定义五个Windows文件夹模板).
我想要:
我发现几乎没有文件.
我试图使用procmon.exe拦截这些设置所在的位置,但我没有找到相关的东西.
我试着编写shell对象的脚本:
$shell = new-object -com Shell.Application
$folder = $shell.Namespace("http://myserver/webdav")
# $folder.???? nothing relevant
$self = $folder.self
# $self.???? nothing relevant too
Run Code Online (Sandbox Code Playgroud)
我探索了注册表,希望找到一些东西,但我没有.
我有什么选择?我甚至不知道这些设置的位置.
如果可能,解决方案应使用脚本语言(vbs或powershell).或者如果绝对需要,可能有C#程序......如果我知道从哪里开始
[edit] procmon表示HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\Windows.AddColumns\添加列时会读取reg键.但是,我不知道这个注册表部分的含义是什么.
我正在使用BrendanGrant.Helpers.FileAssociation;(一个NuGet包)为我的应用程序创建文件关联.它到目前为止工作正常.但是,我有一个问题ProgramVerb:
当我创建一个ProgramAssociation并向它添加动词时:
var pai = new ProgramAssociationInfo(fai.ProgID);
pai.Create(
"App name",
new[]
{
new ProgramVerb("Öffnen", Assembly.GetEntryAssembly().Location + " \"%1\""),
new ProgramVerb("Bearbeiten", Assembly.GetEntryAssembly().Location + " \"%1\"")
});
}
Run Code Online (Sandbox Code Playgroud)
Bearbeiten和Öffnen(编辑和打开)关键字在Windows资源管理器的上下文菜单中是小写的:
我将第二个条目WAAAA命名为测试它是否仅改变第一个角色,但显然不是.
我需要更改什么,以便我的Bearbeiten和Öffnen在上下文菜单中是大写的?
windows-explorer ×10
c# ×3
windows ×3
powershell ×2
.net ×1
environment ×1
file-manager ×1
finder ×1
html ×1
navigation ×1
registry ×1
sabredav ×1
shell ×1
webdav ×1
winapi ×1
windows-7 ×1