【问题标题】:Directory of where Office solution has been placed放置 Office 解决方案的目录
【发布时间】:2015-06-09 16:48:50
【问题描述】:
我正在尝试访问代表我的应用程序所在的当前目录的路径的字符串。我有一个在 Visual Studio 中制作的 excel 模板,需要用当前目录中的文件名填充(其中文件已放置)及其子目录。我在任何地方都找不到真正有效的解决方案,我发现了一些解决方案的尝试:get path for my .exe 和其他各种无效的解决方案。我目前让用户输入所需的路径,但我想自动找到路径或找到另一种方法来收集这些名称。
【问题讨论】:
标签:
c#
visual-studio
excel-template
【解决方案1】:
这取决于您分发解决方案的方式。 Office 加载项和模板在通过标准 ClickOnce 模式分发时,最终位于 AppData 文件夹中某处的一个隐蔽命名的文件夹中(在另一个隐蔽命名的文件夹内)。您将无法使用常规方法获取当前现有应用程序的路径,因为它们很可能会返回 EXCEL.EXE 本身的路径。 This SO post 提供了一种在 VSTO 解决方案中获取当前文件夹的好方法。
或者,您可以考虑使用 MSI 来分发您的模板/加载项。这是一条较长的路径并且有很多注意事项,但您最终会在 Program Files 文件夹中安装您的加载项/模板。
【解决方案2】:
我对 c# 不太熟悉,但这是我在 vb 中所做的:
Dim dir as string = Application.StartupPath
你可以在 excel VBA 中做同样的事情:
Dim dir as string = Application.ActiveWorkbook.Path