exe保存文件确定,除非通过Excel宏启动

时间:2014-01-24 10:10:53

标签: c# wpf excel excel-vba .net-assembly vba

我是新来的

我有一个带WPF的c#程序

  • 生成一些pdf
  • 将其保存在同一目录中
  • 然后打开pdf进行查看

- >所有工作正常,直接exe启动时没有错误。

但是当.exe由excel宏(shell函数)在同一目录中的excel文件中启动时:excel宏没问题,程序启动OK,生成pdf OK,... pdf打开&自动查看确定(所以让我觉得pdf已经保存了一些)...当所有内容都关闭时...目录中不是pdf!

这可能是一个明显的一般错误,但我无法弄清楚。 详细的帮助,因为我是新手 和Fabrice

1 个答案:

答案 0 :(得分:0)

如果Excel使用的是其他工作目录,则该文件将放在那里而不是您期望的位置。如果是这种情况,您可以使用以下方法......

    public string GetFullSaveName(string pdfName)
    {
        string myDirectoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
        if (myDirectoryName != null)
        {
            string fullSaveName = Path.Combine(myDirectoryName, pdfName);
            return fullSaveName;
        }
        throw new ApplicationException("Unable to locate assembly path");
    }

此方法使用Reflection来查找运行应用程序的目录。它使用它来构建完全限定的路径,以便将pdf文件写入可预测的位置。返回的路径是应用程序的工作目录,而不是Excel的工作目录。