请建议我使用C#跨平台解决方案来复制带有进度的文件。 该方法应该能够在.NET上复制Mono上的文件。
P.S。这里的大多数解决方案都是指CopyFileEx(使用PInvoked,我不确定这是否适用于Mono)
答案 0 :(得分:4)
您可以在文件流之间手动复制,例如MonoDevelop's file deployer中的CopyFile方法,该方法在每1k块之后有一个回调。
它可能比File.Copy慢一点,但如果进度回调是必不可少的,那么你没有太多选择。对于MonoDevelop文件复制器,我们通过FUSE写入本地安装的远程文件系统。
答案 1 :(得分:0)
您是否尝试过File.Copy方法?我没有单声道的经验,但认为它应该工作。您将不得不担心文件路径,这与API不同。
答案 2 :(得分:0)
StreamWriter
应该有效:),
通过StreamReader
?将数据加载到内存中,并通过StreamWriter
或BinaryWriter
写入。如果你愿意,甚至还有AsyncWrite:)
我有一个在Mono上运行的自定义存档格式,使用上面提到的这些API。对你来说应该没什么不同。