【问题标题】:Post build event my documents folder generic发布构建事件我的文档文件夹通用
【发布时间】:2015-01-08 09:51:23
【问题描述】:

我想知道如何在任何机器上获取我的文档路径。

我需要能够在那里创建一个新文件并将一个文件夹复制到其中。 到目前为止,我知道它是硬编码的,所以我正在寻求帮助。

1. make text file in:
C:\Users\ADMIN\Documents\folder1\Projects\project1\copyfolder\textfile.txt

2. copy folder and contents:
C:\ProgramData\test1\copyfolder\
to
C:\Users\ADMIN\Documents\folder1\Projects\project1\copyfolder\

这是我目前得到的:

回声。 2>C:\Users\ADMIN\Documents\folder1\Projects\project1\copyfolder\textfile.txt

但正如您所见,它是硬编码的!

%USERPROFILE%\My Documents\ 也可以吗? 谢谢

【问题讨论】:

  • 只是好奇你为什么要文档而不是项目文件夹?
  • 项目文件夹没有读/写权限
  • %USERPROFILE%\My Documents\ 方法只有在您对运行它的系统有足够的了解时才有效。首先,它只是 Windows 7 及更高版本上的“文档”,因此这更像是一个 WinXP 解决方案。其次,不能保证 Documents 文件夹存在。它可以移动到任何位置,理论上不必停留在配置文件内。在实践中,您可能会说在您的工作环境中是否曾经出现过这种情况,所以它可能对您来说已经足够好,但不是一个全球通用的解决方案

标签: c# visual-studio-2010 cmd post-build-event


【解决方案1】:

构建事件的正确语法是$(USERPROFILE)\Documents

【讨论】:

    【解决方案2】:

    由于 Visual Studio 后期构建基于 MSBuild,因此应该可以使用直接访问注册表的宏(请参阅 MSBuild documentation 中的注册表属性)。

    所以你可以使用

    $(registry:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders@Personal)
    

    查询当前用户Documents文件夹的准确位置,无论是否移动

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 2020-04-03
      • 1970-01-01
      • 2015-11-09
      相关资源
      最近更新 更多