C# 使用硬链接模拟连接的文件?

C# 使用硬链接模拟连接的文件?,c#,ffmpeg,aforge,hardlink,C#,Ffmpeg,Aforge,Hardlink,我有一个文件的多个部分,我想让第三方c++/c#插件作为一个文件读取。基本上,当插件文件读取器到达一个文件部分的末尾时,我希望它继续到下一个文件部分 (对于任何感兴趣的人来说,该插件是一个RGE.Net FFMpeg,我正在尝试导入VOB文件) 重新编程插件似乎是一项艰巨的任务。另一种解决方案是将文件部分复制到一个连接的文件中,但这很慢,因为我处理的数据量很大 是否可以使用文件系统硬链接指向多个文件?或者是否有其他方法“伪造”连接的文件?使用命令行FFMpeg,我可以使用“type”来实时流式传

我有一个文件的多个部分,我想让第三方c++/c#插件作为一个文件读取。基本上,当插件文件读取器到达一个文件部分的末尾时,我希望它继续到下一个文件部分

(对于任何感兴趣的人来说,该插件是一个RGE.Net FFMpeg,我正在尝试导入VOB文件)

重新编程插件似乎是一项艰巨的任务。另一种解决方案是将文件部分复制到一个连接的文件中,但这很慢,因为我处理的数据量很大

是否可以使用文件系统硬链接指向多个文件?或者是否有其他方法“伪造”连接的文件?使用命令行FFMpeg,我可以使用“type”来实时流式传输连接文件,但我不知道如何使用这个插件在c#中实现这一点


我使用的是Windows 7。

不是,硬链接只指向一个文件


您的应用程序是第三方应用程序,这增加了复杂性。。。我看到的唯一解决方案是编写一个动态对象,只覆盖特定路径的file方法,例如,
read()
将从第一个文件开始,然后在完成第三个文件后继续到第二个文件,等等。祝你好运

不是,硬链接只指向一个文件


您的应用程序是第三方应用程序,这增加了复杂性。。。我看到的唯一解决方案是编写一个动态对象,只覆盖特定路径的file方法,例如,
read()
将从第一个文件开始,然后在完成第三个文件后继续到第二个文件,等等。祝你好运

硬链接只能引用一个I节点,因此硬链接没有帮助。然而,一个FIFO或命名的管道将被调用。在UNIX shell中,您可以执行以下操作:

$ mkfifo catenated
$ cat a b c >catenated &
从“catenated”文件读取的程序现在将把所有三个文件(A、b和c)连接在一起。读取所有三个文件的数据后,“cat”程序将终止。Microsoft Windows也具有此类功能(请参阅)


请注意,管道是不可查找的。如果读取连接数据的程序尝试查找,它将失败。如果需要查找连接,则需要使用更复杂的东西(虚拟文件系统?FUSE?)。

硬链接只能引用一个I节点,因此硬链接没有帮助。然而,一个FIFO或命名的管道将被调用。在UNIX shell中,您可以执行以下操作:

$ mkfifo catenated
$ cat a b c >catenated &
从“catenated”文件读取的程序现在将把所有三个文件(A、b和c)连接在一起。读取所有三个文件的数据后,“cat”程序将终止。Microsoft Windows也具有此类功能(请参阅)


请注意,管道是不可查找的。如果读取连接数据的程序尝试查找,它将失败。如果需要查找连接,则需要使用更复杂的东西(虚拟文件系统?FUSE?)。我用它已经好几年了,但是IIRC,你可以用它来编写视频文件连接的脚本,这样它们就会显示为一个文件。我记不起详细信息,但脚本文件的行为就好像它们是视频文件一样,可以在大多数视频编辑应用程序中用作源文件。

这可能是最好的处理方法。我用它已经好几年了,但是IIRC,你可以用它来编写视频文件连接的脚本,这样它们就会显示为一个文件。我记不起细节了,但脚本文件的行为就像是一个视频文件,可以在大多数视频编辑应用程序中用作源文件。

管道与FFMPEG配合使用,但我不知道如何在c#中使用管道。插件需要一个路径字符串作为输入。Ok。读一读。命名管道在.NET3.5中受支持-非常好。现在我需要找出一种方法,将命名管道转换为某种路径字符串!不过,还有一个问题,这只会导致一次。你需要一个额外的程序或者其他什么东西来循环cat命令。而且你不能同时阅读超过一次。我认为,阅读一次应该可以。管道与FFMPEG配合使用,但我不知道如何在c#中使用管道。插件需要一个路径字符串作为输入。Ok。读一读。命名管道在.NET3.5中受支持-非常好。现在我需要找出一种方法,将命名管道转换为某种路径字符串!不过,还有一个问题,这只会导致一次。你需要一个额外的程序或者其他什么东西来循环cat命令。而且你不能同时阅读超过一次。我想读一次就可以了。