CopyFileEx与System.IO.File.Copy()

时间:2018-06-20 19:37:27

标签: c# copy

目前情况很奇怪。

我管理一个C#应用程序,将文件从服务器复制到用户的USB / SD卡。

我最近从System.IO.File.Copy()切换为使用kernal32中的PinFile的CopyFileEx()。

我不是在这里请求代码,我当前的包装程序和代码都可以正常工作(这种情况除外)。

我确实发现原始文件的属性没有被复制,但是我已经解决了。

CopyFileEx可以很好地复制文件,但是有些西门子PLC SD卡无法正常工作。它们似乎可以正常编程,但是PLC永远不会进入运行状态。奇怪的是,从文件资源管理器进行的简单复制和粘贴可以正常工作。

有人知道CopyFileEx是否更改文件的编码或加密?

我比较了复制过程前后文件的二进制文件,并且文件是相同的。所以,我目前很沮丧。

我当前使用的唯一复制标志是COPY_FILE_RESTARTABLE,以获取复制状态。 (主要用于较大的文件。)

有人有类似的经历吗?

谢谢

-J

1 个答案:

答案 0 :(得分:0)

所以花了一些时间来进行挖掘和反复试验,但是我弄清楚发生了什么。

复制功能都很好。 我先前关于编码和加密的假设是错误的,并且问题更多与Siemen SD卡上的文件/文件夹有关。

事实证明,即使所有文件都已正确复制,但仍有一个空文件夹没有从服务器复制到SD卡,这使PLC无法正确编程。

-J