2010-05-28 56 views
0

请为我推荐一个C#跨平台解决方案来复制包含进度的文件。 该方法应该能够在.NET上复制Mono上的文件。C#/ CopyFile:带有进度的跨平台代码

P.S.这里的大多数解决方案是指CopyFileEx(它使用PInvoked,我不确定这是否适用于Mono)

+0

它不只是单声道,你瞄准什么操作系统? – 2010-05-28 18:25:37

回答

4

您可以在文件流之间进行手动复制,例如MonoDevelop's file deployer中的CopyFile方法,该方法在每1k个块之后都有一个回调函数。

它可能比File.Copy慢一点,但如果进度回调是必不可少的,那么您没有多少选择。对于MonoDevelop文件复制器,我们通过FUSE写入本地安装的远程文件系统。

+0

谢谢迈克尔。 – 2010-05-29 12:05:41

0

您是否尝试过File.Copy方法?我没有单声道的经验,但认为它应该工作。您将不得不担心文件路径,这与API不同。

0

StreamWriter应通过StreamReader工作:),

的数据加载到内存中?,并通过StreamWriterBinaryWriter写。如果你想要的话,甚至有AsyncWrite :)

我有一个自定义归档格式,它使用上面提到的这些API在Mono上运行。应该对你没有什么不同。