- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个由 MemoryFileSystem 生成的文件系统。我希望在真实文件系统中有一个文件夹“映射”到内存文件系统中的文件夹,因此在任一文件系统中创建的任何文件都只是真正写入内存而不是磁盘。在谈论此类事情时,我听说过“符号链接(symbolic link)”这个术语,但我不完全确定这是否就是我想要做的。有没有有效的方法来实现这一点?
我尝试过 Files.createSymbolicLink(memoryRootPath, realFolderPath);
但这给了我这个错误:
Exception in thread "main" java.nio.file.ProviderMismatchException: expected a path of provider memory but got file
谢谢!
最佳答案
首先,您试图以错误的方向创建符号链接(symbolic link)。如果您希望真实文件系统中的文件“映射”到内存文件系统,那么符号链接(symbolic link)应该位于指向内存文件系统的真实文件系统中。
但这是不可能的。
真正的文件系统是由操作系统实现的,它对内存文件系统一无所知。这意味着操作系统将无法解析符号链接(symbolic link)。符号链接(symbolic link)(在真实文件系统中)必须引用操作系统知道的文件系统中的某些内容。
如果您想实现这样的功能,则需要使用操作系统能够理解的文件系统来完成。例如,在 Linux 上,您可以创建一个由内存/虚拟内存支持的“tmpfs”文件系统。然后,您可以将其挂载到常规目录上,并从常规文件系统创建指向 tempfs 中的文件或目录的符号链接(symbolic link)。当您重新启动系统时,临时文件系统将被破坏。
<小时/>在您的案例中出现该异常的原因是 MemoryFileSystem
的实现限制。这是设计使然。
private AbstractPath castPath(Path path) {
if (!(path instanceof AbstractPath)) {
throw new ProviderMismatchException("expected a path of provider " +
SCHEME + " but got " + path.getFileSystem().provider().getScheme());
}
return (AbstractPath) path;
}
理论上,应该可以使符号链接(symbolic link)从 MemoryFileSystem 工作到真实文件系统,但是:
MemoryFileSystem
,并且关于java - 在 Java 中将 MemoryFileSystem 链接到普通文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46126351/
我有一个由 MemoryFileSystem 生成的文件系统。我希望在真实文件系统中有一个文件夹“映射”到内存文件系统中的文件夹,因此在任一文件系统中创建的任何文件都只是真正写入内存而不是磁盘。在谈论
我是一名优秀的程序员,十分优秀!