复制文件不起作用

Posted

技术标签:

【中文标题】复制文件不起作用【英文标题】:CopyFile not working 【发布时间】:2013-07-03 21:17:03 【问题描述】:

我正在创建一个 WiX 安装程序,我想将最终用户计算机上存在的文件移动到他们选择的位置。但是,CopyFile 不起作用,并且日志文件没有显示任何错误。

这是我的目录树:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="ProgramFilesFolder">
    <Directory Id="INSTALLFOLDER" Name="Remindex">
    </Directory>
  </Directory>
  <Directory Id="DATALOCATION" Name="File"/>
  <Directory Id="ORIGINALDATA"/>
</Directory>

还有我的 CopyFile 组件:

<DirectoryRef Id="TARGETDIR">
  <Component Id="CMP_Data" Guid="C35F8888-D868-4B18-991E-29E217EFE445" KeyPath="yes">
    <CopyFile Id="CopyData" 
              DestinationDirectory="DATALOCATION" 
              DestinationName="Remindex Local Data" 
              SourceProperty="ORIGINALDATA" 
              SourceName="Remindex Local Data" 
              Delete="yes"/>
  </Component>
</DirectoryRef>

DATALOCATION 是一个属性,它包含用户在 PathEdit 对话框中选择的路径。 ORIGINALDATA 是要移动的文件的原始位置。所以文件应该从 ORIGINALDATA 移动到 DATALOCATION。然而,什么都没有发生。我尝试将 ORIGINALDATA 放在 SourceDirectory 和 SourceProperty 属性中。

该组件在日志文件中出现了 3 次(不是并排显示),尽管我不确定如何处理这些条目:

Component: CMP_Data; Installed: Absent; Request: Local; Action: Local

_CMP_Data65; Installed: Null; Request: Local; Action: Local

_CMP_Data66; Installed: Null; Request: Local; Action: Local

任何建议将不胜感激。

【问题讨论】:

【参考方案1】:

我的问题是我试图复制一个文件夹,而 CopyFile 仅适用于单个文件。

为了解决这个问题,我必须在我想要复制的文件夹中手动创建每个子文件夹,并使用所有旧文件夹的内容填充这些子文件夹。我将使用 CopyFile 并可以在 SourceName 属性 (SourceName="*") 中放置一个通配符来获取特定子文件夹中的所有内容。

【讨论】:

以上是关于复制文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章

touch 命令不起作用,我应该改用啥? [复制]

如何提取不起作用的 .apk 文件的代码? [复制]

代码不起作用:使用 vba 将文件从一个目录复制到另一个目录

Excel VBA 代码在 Open Office 中不起作用(列表中的代码复制文件)

具有附加列的 ADF 复制活动不起作用

为啥百分号 (%) 在 crontab 中不起作用? [复制]