区块链技术博客
www.b2bchain.cn

CopyFileEx“参数无效”错误 – c#程序员分享

本文介绍了CopyFileEx“参数无效”错误 – c#程序员分享,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

我正在使用.NET 4编写一个(相当)简单的C#应用​​程序,以在运行可执行文件之前检查更新。如果网络共享上存在较新版本的exe,只需将其复制到本地文件夹中并启动它。除了阅读File.Copy()的局限性之外,其他所有功能都运行良好,我意识到这样做的时候我将无法显示进度条,而且我看到的所有内容都说要使用CopyFileEx,所以我我正在尝试这样做。

我使用了here中找到的示例代码,并且可以很好地编译(尽管我仍然不确定背景工作人员是如何发挥作用的),除了当我实际去运行应用程序时,CopyFilEx()方法返回false,错误为“参数不正确”。

我的代码(仅相关部分,如有需要,我将添加更多内容)

调用函数:

XCopy.Copy(strServerAppPath + strExeName, strLocalAppPath + strExeName, true, true, (o,    pce) => { worker.ReportProgress(pce.ProgressPercentage, strServerAppPath + strExeName); }); 

(源路径的评估结果为“ C: test.txt”,目标路径的评估结果为“ C: test test.txt”)

上面链接的代码中发生错误的位置:

bool result = CopyFileEx(Source, Destination, new CopyProgressRoutine(CopyProgressHandler), IntPtr.Zero, ref IsCancelled, copyFileFlags);             if (!result)                 throw new Win32Exception(Marshal.GetLastWin32Error()); 

预先感谢您的帮助,我已经为此努力了几个小时…

参考方案

而不是处理所有编组,只是简单地“逐卷”滚动自己的复印机是很简单的:

private static void CopyFile(string source, string destination, int bytesPerChunk) {     int bytesRead = 0;      using (FileStream fs = new FileStream(source, FileMode.Open, FileAccess.Read))     {         using (BinaryReader br = new BinaryReader(fs))         {             using (FileStream fsDest = new FileStream(destination, FileMode.Create))             {                 BinaryWriter bw = new BinaryWriter(fsDest);                 byte[] buffer;                  for (int i = 0; i < fs.Length; i += bytesPerChunk)                 {                     buffer = br.ReadBytes(bytesPerChunk);                     bw.Write(buffer);                     bytesRead += bytesPerChunk;                     ReportProgress(bytesRead, fs.Length);  //report the progress                 }             }         }     } } 

我可以使用“ dumpbin”和“ dll export”之类的工具来查看标准win32 DLL的公共入口点(“ exports”),例如Windows SYSTEM32 GDI32.dll。但是,当我在.Net DLL上使用这些相同的工具时,我看到的仅仅是 2000 .reloc 2000 .rsrc 48000 .text 我有一个C#/。Net…

我们正在将ASP.NET Core 2.1与.NET Framework 4.6.2结合使用。我们有一个客户需要向我们的Web应用程序发送一个很大程度上嵌套的json结构。当他们进行此调用时,我们将输出以下日志并返回错误: 读取器的MaxDepth超过了32。路径“ super.long.path.to property”,第1行,位置42111。”我浏览了…

我对asp.net和mvc还是很陌生,所以我正在努力学习尽可能多的知识…为此,我从头开始编写博客网站,但是我对身份验证和授权有些困惑。由于我倾向于不真正使用任何脚手架的东西,所以我首先要使用数据库,所以不希望asp.net身份为我创建表。我对散列和加盐密码很酷,并对照数据库检查用户,我遇到的麻烦是将用户设置为登录状态并检查他们应该能够访问什么。我真的很想…

我正在使用Oledbconnection连接到Microsoft Access数据库,并且正在使用OleDbCommand检索一些信息。我在数据库中有一个名为retrieveInfo的查询,该查询检索3行数据。字段中有一些重复项,但是应该是这样。我的数据如下所示: Name Email A B B …

java.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » CopyFileEx“参数无效”错误 – c#程序员分享
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们