【发布时间】:2016-08-15 14:15:47
【问题描述】:
是否有一个库可以使用它为 C# 提供的所有功能来操作 ext4 分区?
另外问的问题大家都说应该用Ext2Fsd之类的程序挂载分区,用默认的IO文件库操作。问题是使用这种方法我仍然有 255 个字符的完整路径名限制,因为 Windows IO 库不希望写入允许更多的分区。
【问题讨论】:
-
也许我应该将问题更改为“如何在 Windows 上写入全名大于 255 个字符的文件”?
是否有一个库可以使用它为 C# 提供的所有功能来操作 ext4 分区?
另外问的问题大家都说应该用Ext2Fsd之类的程序挂载分区,用默认的IO文件库操作。问题是使用这种方法我仍然有 255 个字符的完整路径名限制,因为 Windows IO 库不希望写入允许更多的分区。
【问题讨论】:
作为 e2fsprogs 的一部分提供的 ext2fs 库支持 Windows,但此时它可能非常糟糕。唉,lib/ext2fs/ntfs_io.c 好久没更新了,lib/ext2fs/getsize.c 只懂怎么从windows获取32位设备大小(当时windows代码最后一次主动维护,我们还没有 ext4 的 64 位块号支持)。当然,几乎可以肯定有些 Linux 主义没有被正确地#ifdef 淘汰。
话虽如此,MacOS X 和 FreeBSD 都支持 e2fsprogs,此外还有一些非常古老的 Windows NT 支持代码,因此它被设计为可移植的,而且它肯定不是 Linux/glibc 特定的。就此而言,它甚至可以在带有仿生 libc 的 Android 系统上构建! :-)
如果您想尝试对现代 Windows 系统的 e2fsprogs 和/或 libext2fs 进行现代化改造,请随时尝试并向我发送补丁;我很高兴审查和整合它们。请使用 Linux 内核提交指南(不是 github 拉取请求,因为它们无法被有效地审查)。 git 树可以在这里找到:https://git.kernel.org/cgit/fs/ext2/e2fsprogs.git
【讨论】: