问题标签 [reparsepoint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
5679 浏览

c# - 在 .net (c#) 中检查重解析点的最佳方法是什么?

我的功能几乎是一个标准的搜索功能......我已经将它包含在下面。

在函数中,我有 1 行代码负责清除 Repart NTFS 点。

问题是现在我收到一个错误 Access to the path 'c:\System Volume Information' is denied.

我调试了代码,该目录在运行时的唯一属性是:

我正在 Windows 2008 服务器机器上执行此代码,有什么想法可以解决此故障吗?

0 投票
1 回答
5192 浏览

c# - 如何使用标准用户检索 Junction 或 Symlink 的目标

我正在尝试在我的程序中获取连接的目标,但我设法做到的唯一方法是:

  1. 请求备份权限
  2. 使用特殊参数 p-invoke CreateFile 以获取文件/目录的句柄。
  3. DeviceIoControl 调用获取目标。

第一步不适用于普通用户帐户,因为他们没有备份权限,而且我不想每次执行此操作时都获得 UAC 用户同意窗口。

我认为这是可行的,因为普通的“dir /A:L”命令可以解析链接的目标。

0 投票
3 回答
12744 浏览

c# - 检测符号链接、连接点、挂载点和硬链接

有谁知道如何检查文件或目录是符号链接连接点挂载点还是硬链接

据我所知,通过检查文件的“ReparsePoint”属性来检测符号链接。通过检查“ReparsePoint”属性的目录来检测连接点。因此,如果在文件上设置了“ReparsePoint”属性,则它必须是符号链接,否则如果在目录上设置,它只能是连接点……对吗?

到目前为止很好,但我仍然不知道如何检测“安装点”和“硬链接”。谁能告诉我该怎么做?

0 投票
1 回答
2886 浏览

winapi - NTFS Junctions,难以理解 API

更新:这个问题已经演变成一个关于NTFS filesystem filter driver如何在备份应用程序和其他需要知道文件在磁盘上的真正内容的程序中使用 Win32 API 的问题?连接点和重解析点是我需要考虑的关键概念,也是 NTFS 文件系统中最令人困惑的东西。

原始问题如下:


  1. 用于检测目录是否为联结的Win32 API是什么?
  2. NTFS 层次结构中的“哪里”(由于缺乏更好的理解)存储连接?
  3. 如果我创建一个交汇点c:\thejunction_mydir 两个目录是否会成为彼此的交汇点?即创建的和引用的
0 投票
1 回答
332 浏览

windows-xp - Deleting reparse point

I created a reparse point using the junction.exe utility. Now when I try deleting it using the "-d" switch, it returns an error and claims that access is denied. Checking the Properties for the junction folder, there is a greyed-out check mark at "Read Only," which keeps on returning after I try to reverse that attribute. Help please!!

0 投票
1 回答
1282 浏览

.net - How to get the actual directory path on windows using .NET?

My need is simple. Given a Windows directory path all I want is the actual path. I am sure the terminology is wrong, so I am giving an example.

Given C:\Documents and Settings\All Users the method should display:

  • C:\ProgramData on windows 7
  • C:\Documents and Settings\All Users on windows 2003

This is because on windows 7 C:\Documents and Settings is a junction referencing C:\Users and C:\Users\All Users is yet another junction referencing C:\ProgramData, which is the actual directory.

So, my question is what .NET API lets me do all this?

Thanks.

0 投票
1 回答
7312 浏览

directory - NTFS 连接与符号链接(用于目录)

从高级的角度来看(意味着只关心结果和接口,而不是实现),指向目录的 NTFS 重解析点和指向目录的符号链接之间的行为有什么区别(如果有的话)同一个目录?

它们是在堆栈中的同一级别解决,还是在某个时间可以解决另一个问题时(例如在启动时),其中一个可能无法解决?

(我知道符号链接也可以用于文件,但我在这里询问目录差异。)

0 投票
2 回答
762 浏览

winapi - REPARSE_DATA_BUFFER 结构的 PathBuffer 中的“SubstituteName”字符串是否总是以前缀“\??\”开头,如果是,为什么?

我正在尝试使用与 Windows XP 及以上兼容的 Windows API 函数来查找联结或符号链接的目标。我CreateFile用来获取重解析点的句柄,然后DeviceIoControl使用FSCTL_GET_REPARSE_POINT标志将重解析数据读入REPARSE_DATA_BUFFER. 然后,我使用缓冲区中的偏移量和长度来提取SubstituteNamePrintName字符串。

在 Windows 8 中,完美地提取PrintName作品,给我一个正常的路径(即c:\filename.ext),但在 XP 中,该PrintName部分的REPARSE_DATA_BUFFER长度似乎总是为 0,给我留下一个空字符串。

使用SubsituteName似乎在两者中都有效,但我总是\??\在文件路径的开头加上前缀(即\??\c:\filename.ext)。(作为旁注,也fsutil reparsepoint query显示\??\前缀)。

我已经阅读了 MSDN 上的大部分文档,但我找不到这个前缀的任何解释。如果保证前缀从每个 开始SubstituteName,那么当我从缓冲区复制文件路径时,我可以排除前四个字符,但我不确定是否是这种情况。我很想知道"\??\"前缀是否出现在SubstituteName所有 Microsoft 重新分析点中以及为什么。

0 投票
1 回答
686 浏览

c# - 在 .Net 3.5 中使用 GetDirectories() 识别错误的 ReparsePoints?

我正在使用Directory.GetDirectories()Linq 语句来遍历文件夹中不是系统文件夹的所有目录,但是我在文件夹中发现了一堆坏ReparsePoints的,这导致该方法需要很长时间,因为每个都超时重解析点不好。

我目前使用的代码如下所示:

我也尝试过使用这样的代码进行测试,但它也会在坏文件夹上挂起整整一分钟左右:

应该注意的是,上述代码在 .Net 4.0 中运行良好,但在 3.5 中,它会在每个错误的重解析点挂起一分钟。

尝试在 Windows 资源管理器中手动打开这些文件夹会导致“找不到网络路径”错误。

是否有另一种方法可以遍历不使用该Attributes属性的文件夹中的好子文件夹,或者绕过错误的重解析点?

我已经尝试过使用Directory.Exists(),这同样慢。

0 投票
0 回答
294 浏览

c# - 如何确定网络驱动器上是否存在目录?

我正在循环浏览网络驱动器上的目录,但有些目录很糟糕ReparsePoints,实际上并不存在。

在大约 30 秒后使用Directory.Exists返回,但尝试在 Windows 资源管理器中打开该文件夹会返回以下错误消息:truenew DirectoryInfo(dir).Exists

I:\MyFolder 不可访问。

找不到网络路径。

尝试使用访问目录内容dir.GetDirectories()会引发异常,因为路径不存在,其他方法(例如dir.GetAccessControl().

当文件夹有效时,有没有办法确定网络路径是否存在ReparsePoint

唯一的文件夹属性是Directory, ReparsePoint