【问题标题】:I get an "Invalid Name" error when I try to use "CopyEx"尝试使用“CopyEx”时出现“无效名称”错误
【发布时间】:2010-09-01 19:33:34
【问题描述】:

关于现在已修复的my previous problem,我在 //code here 部分遇到了另一个问题:/

foreach (ManagementObject obj in ObjSearcher.Get())
{  
    ManagementBaseObject inputArgs = obj.GetMethodParameters("CopyEx");
    inputArgs["FileName"] = "\\c:\\1stuff";
    inputArgs["Recursive"] = true;
    ManagementBaseObject outParams = obj.InvokeMethod("CopyEx", inputArgs, null);
    uint ret = (uint)(outParams.Properties["ReturnValue"].Value);
}

我不断得到返回值 9,即“无效名称”。 我不知道什么名字无效,也不知道如何修复它。两个文件夹都存在。

【问题讨论】:

  • 文件名中前导反斜杠 ("\\") 的用途是什么?这是无效的。

标签: c# winapi copy wmi


【解决方案1】:

您的文件名中有一个前导反斜杠。尝试删除它。我不知道任何具有您正在使用的格式的文件路径。

【讨论】:

  • 删除前导 \ 会出现错误 10,即“无效级别”
  • 我认为你必须像这样指定路径:\\MACHINENAME\root\cimv2:Win32_Directory.Name="<your path>"
  • (本地机器使用 `\\.`)
  • 您使用的整个结果字符串是什么?在Name="" 内部,您必须确保您转义(这可能意味着双重转义)您的字符串。
  • 根据msdn.microsoft.com/en-us/library/aa389324(VS.85).aspx,错误10表示“指定的对象已经存在”。也许只是 @"c:\1stuff" 可以正常工作,但那里已经有一个文件/目录阻止了副本。
猜你喜欢
  • 1970-01-01
  • 2011-03-24
  • 2010-10-26
  • 1970-01-01
  • 2020-09-11
  • 1970-01-01
  • 1970-01-01
  • 2022-08-19
  • 1970-01-01
相关资源
最近更新 更多