问题标签 [ntfs]
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.
windows - 如何在没有管理员权限的情况下在 Windows XP 上复制锁定的文件(设备或资源繁忙错误)
有没有什么方法可以在没有管理员权限的情况下在 windows xp 机器上复制锁定的文件?我使用了 unloker 工具,它很棒,但需要管理员权限才能安装和运行。如何在某些编程语言(如 perl/shell/c c++ 等)中完成,或者是否存在一些解决方法。
statistics - 收集 NTFS 文件访问统计信息的最佳方法?
我想就在 Windows Vista 和 Windows 7(32 位和 64 位)下选择一种方法来收集 NTFS 卷上的文件访问统计信息提出建议。我想计算每个文件的文件创建/打开、删除、读/写访问。
API 挂钩已退出。我需要系统范围的计数,以及 32 位和 64 位操作系统,而不会破坏操作系统。另外,我不认为 Shell Notification 会起作用。
我知道我可以通过安装文件系统过滤器驱动程序来做到这一点。Windows DDK 有一个示例,这就是 Mark Russinovich 的 FileMon (Sysinternals) 的工作原理。
我想我也可以使用 WMI 来完成此任务,但我不确定。那是一个疯狂的混乱 API。但如果微软会为我收集统计数据,我会使用它。
所以问题是,哪种方法最好以及为什么。我是否错过了另一种可能性,WMI 会这样做吗?
path - NTFS 中的文件路径是否有长度限制?
为什么我不能在 NTFS 文件系统中创建路径中字符超过 255 个的深度路径?好像FAT32有限制,NTFS也存在?谁能提供一些文件?
非常感谢!
c# - 基于 SHA-1 的目录结构和 NTFS 限制?
我有一个应用程序将基于文件的数据存储在 NTFS 目录路径下,该路径关闭数据的 SHA-1 哈希。它有几个非常好的属性(重复数据删除、不受其他元数据更改的影响等),但我很好奇人们在创建基于哈希的目录存储结构方面所经历的最佳实践。我主要关心的是可以实际存储在给定文件夹深度的文件/文件夹的数量。
有谁知道我会遇到什么样的限制?如果我将它们全部转储到存储路径根目录的文件夹中,我觉得我会严重限制存储增长的能力。虽然这不会很快成为问题,但我宁愿有一个可以避免这种情况的结构,也不愿稍后尝试重组大量存储。
如果我采取一种方法来分块签名以创建更深的树,是否有任何关于我需要分块多少的指导?这样的事情就足够了吗?
知道 SHA-1 的分布相当不错,我不得不假设最终会有大型集群,但平均而言它会均匀分布。我担心的是那些集群。
访问过宽的目录结构时是否存在性能损失?我知道 Windows 资源管理器会窒息,但是通过 C#/System.IO 以编程方式访问呢?
architecture - NTFS 备用数据流 - 好主意还是坏主意?
我想为文件存储一些与应用程序相关的元数据,而 NTFS 备用数据流 (AltDS) 将允许我将此元数据直接存储在文件中,而不是存储在单独的数据库中。
我只是觉得这不是一个好主意。我知道这仅适用于 NTFS,但至少如果用户将文件复制/移动到非 NTFS 驱动器,他们会收到来自 Windows 的警告(是的,是的,我知道没有人阅读警告)-
而且,在文件上存储额外的数据可能会变得非常浪费,因为即使我的应用程序被卸载,AltDS 也会保留。就像十年前,人们在卸载程序后使用“注册表清理器”从注册表中删除无用的条目以使他们的系统运行得更快(并且当清理器清理太多时稳定性会降低......)。
我只是想知道它们可以合理地用于什么?它们是否应该完全留给 Microsoft Apps 使用?或者是否有某种共同的政策,哪些类型的应用程序可以使用它们(恶意软件除外)?
编辑:只是为了澄清我的想法。我正处于为自己编写一个小型文档管理系统的早期阶段。因为我想自由移动文件,所以我想在文件上存储元数据,这样如果我移动/重命名/修改它们,我的应用程序仍然可以识别它们。它可以是整个元数据,也可以只是与单独数据库一起使用的 GUID。
总结给出的要点:
优点:
- 元数据随文件移动,因此无需通过散列或文件名识别它
- 适用于所有文件类型,甚至是无法在文件本身中存储任何数据的 .txt 文件
缺点:
- 仅适用于 NTFS,在未来的 Windows 版本中可能不是默认文件系统
- 尽管如果 MS 在将 WinFS 放在一起时不会自动转换它们,我会感到惊讶
- 即使我的应用程序被卸载,AltDS 仍然存在
- 隐私问题
- 脆弱的
- 大多数 USB 记忆棒都是 FAT32。许多私有文件服务器都是 Linux。从 Internet 下载文件应该只传输文件而不是流。简而言之:失去它们相当容易。
windows - 如何检查 Windows 7 文件夹中使用了哪些符号链接
我一直在查看Windows 7 符号链接(使用 mklink)[编辑 - Windows Vista、 Windows Server 2003、Windows Server 2008也支持它们]。是否可以以编程方式确定文件夹是否为符号链接?
windows - NTFS 中的文件名存储为什么编码?
我刚刚开始进行一些编程,以在 WinXP 系统上处理具有非英文名称的文件名。我已经完成了一些关于 unicode 的推荐阅读,我想我明白了基本的想法,但有些部分对我来说仍然不是很清楚。
具体来说,存储在 NTFS 中的文件名(不是内容,而是文件的实际名称)是什么编码(UTF-8、UTF-16LE/BE) ?是否可以使用 fopen() 打开任何文件,它需要一个 char*,或者我别无选择,只能使用 wfopen(),它使用一个 wchar_t*,并且可能需要一个 UTF-16 字符串?
我尝试手动将 UTF-8 编码的字符串输入 fopen(),例如。
但这以“ê°€.txt”的形式出现。
我的印象(可能是错误的)UTF8 编码的字符串足以在 Windows 下打开任何文件名,因为我似乎模糊地记得一些 Windows 应用程序传递 (char*),而不是 (wchar_t*),并且有没问题。
任何人都可以对此有所了解吗?
.net - File.Delete() 在 .NET 下是原子的吗
目标操作系统:Win2003
正如其他关于文件操作原子性的 SO 问题中所发布的那样,Win32 根本不是为事务设计的。我仍然想知道文件删除是否可以是非原子的。毕竟,它要么被删除,要么不被删除。或者文件是否可以在 NTFS 文件系统上因系统崩溃或删除过程中的其他原因而保持在任何其他中间状态?
c# - 如何使用标准用户检索 Junction 或 Symlink 的目标
我正在尝试在我的程序中获取连接的目标,但我设法做到的唯一方法是:
- 请求备份权限
- 使用特殊参数 p-invoke CreateFile 以获取文件/目录的句柄。
- DeviceIoControl 调用获取目标。
第一步不适用于普通用户帐户,因为他们没有备份权限,而且我不想每次执行此操作时都获得 UAC 用户同意窗口。
我认为这是可行的,因为普通的“dir /A:L”命令可以解析链接的目标。
c# - 如何使用 .Net 获取符号链接(或重解析点)的目标?
在 .NET 中,我想我可以通过调用 System.IO.File.GetAttributes() 并检查 ReparsePoint 位来确定文件是否为符号链接。像这样:
在这种情况下,如何获取符号链接的目标?
ps:我知道如何创建符号链接。它需要 P/Invoke: