问题标签 [virtualfilesystem]

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 投票
1 回答
227 浏览

filesystems - macFuse 需要 Mac OS 11+ 上的恢复模式

自 Mac OS 11 Big Sur 发布以来,Apple 仅允许在恢复模式下安装 kext 驱动程序。它还禁止从 Apple 商店安装 kext 驱动程序。我猜这是 macFuse 的终结,至少对于虚拟/云文件系统而言。迁移路径是什么以及如何为 Mac OS 11+ 构建虚拟文件系统,特别是用于文档管理和云存储,类似于 OneDrive、DropBox 等。

我也可以猜测类似的问题也可能出现在 Windows 上。我可以想象,微软会效仿苹果的做法,在未来的版本中出于这些目的在 Windows 上禁止文件系统驱动程序和过滤器。如果发生这种情况,任何有关未来迁移的提示将不胜感激。

0 投票
1 回答
375 浏览

filesystems - 在 Windows 文件管理器中自动显示属性列

我正在尝试在“详细信息”视图中自动显示 Windows 文件管理器中的“属性”列。此列应仅针对特定文件夹显示(而不是针对系统中的所有文件夹)。据我所知,这可以通过 desktop.ini 文件进行。

我已将desktop.ini 文件放在文件夹中,将其标记为系统、隐藏和只读。我还尝试将 desktop.ini 所在的文件夹标记为系统和只读。

我的 desktop.ini 部分工作,至少我能够更改文件夹图标。我想我错误地描述了 Attributes 列。这是我的 desktop.ini 文件:

这是我试图自动化的属性列: 如何在 Windows 文件管理器中自动显示属性列

0 投票
0 回答
124 浏览

virtualfilesystem - 适用于 Linux 的虚拟文件系统 API/云提供商同步 API?

微软和苹果最近推出了用于将云存储文件同步到本地文件系统的 API:适用于 Windows 的Cloud Provider API(也称为 Cloud Filter API)和适用于 Apple 和 iOS 的File Provider API。例如,Microsoft OneDrive 客户端现在构建在这个新 API 之上。

是否有适用于主要 Linux 风格的类似 API?

0 投票
1 回答
43 浏览

synchronization - 如何克服基于 Cloud Sync Engine 的虚拟驱动器中文件下载的 4Gb 限制?

我正在使用 Cloud Files API 和这个项目实现一个虚拟驱动器。但是,下载会停留在大于 4Gb 的文件上。进度停止,并且永远不会再次调用 TransferDataAsync(),即使文件中还有更多字节。

0 投票
0 回答
43 浏览

github - 无法删除vs代码中的远程资源管理器文件

我正在使用 vs 代码扩展:远程存储库

我使用这些使用虚拟文件系统的扩展打开了一些 GitHub 存储库,但我无法删除 vs 代码的远程资源管理器中的某些文件或缓存数据。

虚拟工作区的屏幕截图

请帮我。
提前致谢!!

0 投票
0 回答
22 浏览

macos - 如何使用 C++ / Objective-C 在 windows 和 mac 上识别虚拟(仅限远程)文件

使用例如带有 Qsync 的 qnap 或最新版本的 nextcloud 允许“虚拟文件” - 我的意思是文件似乎在您的文件系统上,但实际上是在打开文件时从您的 NAS / 云存储中检索的文件。

在 Windows 上,我认为我可以检查FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS文件属性是否已设置 - 包括 nextcloud 和 Qsync。

在 Mac 上我很挣扎,因为我找不到任何接近这些属性的东西。似乎我可以检查NSURLFileAllocatedSizeKeyvs.NSURLFileSizeKey以查看文件是否是本地文件 - 但这似乎不是防弹的。iCloud.iCloud为虚拟文件附加了一个非常明显的内容,所以我想知道是否有任何类似于 windows 文件属性的东西?

0 投票
1 回答
56 浏览

winapi - 在 Cloud Files API 中调用了两次删除

我正在尝试使用 Cloud Files API 实现虚拟驱动器。我无法使删除操作起作用。由于某种原因,CF_CALLBACK_TYPE_NOTIFY_DELETE 回调被调用了两次。

我使用两种不同的方法在 C++ 和 C# 中构建了两个示例,在这两种情况下我得到了相同的结果:

  1. CF_CALLBACK_TYPE_NOTIFY_DELETE 被调用。
  2. 再次调用 CF_CALLBACK_TYPE_NOTIFY_DELETE。
  3. CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION 被调用。

这种行为有点令人困惑。谁能解释为什么会发生这种情况以及在第二次通话中我应该做什么?我可以以某种方式区分它们并忽略其中一个调用吗?

0 投票
1 回答
63 浏览

winapi - 使用覆盖重命名文件夹会删除 Cloud Files API 中的源文件夹

我正在使用 Cloud Files API 创建一个虚拟文件系统。我正在尝试对文件夹实施重命名/移动和删除操作。具有覆盖方案的重命名文件夹(当目标文件夹存在时)行为令人困惑。在 Windows 探索中,我试图将 Z:\Folder1 重命名为 Z:\Folder2 而 Z:\Folder2 已经存在。在执行重命名操作之前,正在通过调用 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调删除源文件夹。

这是我使用 Cloud Filter API 获得的回调序列:

  1. 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE。
  2. 源文件夹中的每个文件都被移动到目标文件夹。
  3. 在源文件夹上调用 CF_CALLBACK_TYPE_NOTIFY_DELETE_COMPLETION。

因此,无法在 CF_CALLBACK_TYPE_NOTIFY_DELETE 回调中删除我存储中的文件夹,因为这将在移动操作之前删除所有文件。也没有办法区分 CF_CALLBACK_TYPE_NOTIFY_DELETE 中的删除和移动操作(所以我可以在移动操作中忽略它)。

如何在 Cloud Files API 中正确实现删除和重命名/移动回调?

0 投票
2 回答
121 浏览

winapi - 云文件 API 中的删除在 Windows 21H1 上停止工作

我正在使用 Windows Cloud Filter API 创建虚拟驱动器。删除回调在 Windows Home 21H1 19043.1165 (cldflt.sys 10.0.19041.1110) 上按预期停止工作。如果我从 CF_CALLBACK_TYPE_NOTIFY_DELETE 返回错误代码,则无论如何都会删除脱水占位符,无论我返回的错误代码如何:

我已经测试了从 Windows 资源管理器和 Windows 21H1 上的命令提示符删除。结果是相同的 - 占位符被删除。

我还重新测试了旧版本的删除 - Windows 10 Pro 1909 (18363.1556) (cldflt.sys 10.0.18362.1533) 并且一切都按预期工作 - 如果我从删除回调中返回错误,则文件不会被删除。

我猜这是最新 Windows 更新中的错误。有人能找到解决这种行为的方法吗?

0 投票
0 回答
46 浏览

database - 带有虚拟文件系统的 lmdb

我想在 stm32 微控制器(ARM Cortex M4)上使用 lmdb。我没有操作系统,但我安装了 littlefs 作为文件系统。

对于 sqlite,存在一种称为“VFS”的机制,带有函数 sqlite3_vfs_register(),我可以在其中将 littlefs 与 sqlite 链接,但我还没有为 lmdb 找到类似的东西。

目前我只看到 3 种机制。

  1. 注册“VFS”的功能,但不幸的是我找不到
  2. 将系统调用“打开、读取、写入等”重定向到 littlefs 函数
  3. 编写一个补丁,用 littlefs 函数替换系统调用“打开、读取、写入等”。

我的问题是

  1. 是否可以在具有自己的文件系统的 stm32 上使用 lmdb,还是必须使用其他数据库?
  2. 将 lmdb 与 littlefs 等文件系统连接的最佳机制是什么?