复制文件不起作用
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="*") 中放置一个通配符来获取特定子文件夹中的所有内容。
【讨论】:
以上是关于复制文件不起作用的主要内容,如果未能解决你的问题,请参考以下文章
代码不起作用:使用 vba 将文件从一个目录复制到另一个目录