我有一个许可证文件,我需要在运行时访问才能创建pdf文件。在我创建了内存pdf之后,我需要在该pdf上调用一个方法来设置许可证,如下所示:
pdf.SetLicense("pathToLicenseFileHere");
许可证文件与创建pdf的.cs文件位于同一项目中,但位于单独的文件夹中。我不能让这个简单的事情表现得正确,这让我有点难过,因为它真的不应该那么难。 :(
我尝试设置这样的路径:
string path = @"\Resources\File.lic";
但这对我来说不合适。
编辑:
更多信息。我应该提一下,这是一个将pdf:s作为byte []返回的Web服务。 Web服务创建pdf:s,在此创建过程中,我需要设置许可证文件,以便从pdf文档中删除任何水印。 pdf本身不会保存到光盘,只需在创建时访问许可文件一次。
答案 0 :(得分:5)
因此该文件位于您的项目中,您需要在您的应用程序所在的文件夹中的相同文件夹(结构)中。
如果我是正确的,有两种方法可以让它发挥作用:
现在该文件位于Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "license.txt")
。
也许您在解决方案目录中添加了一个文件夹,并将所需文件移到那里。在这种情况下,VS将创建解决方案中定义的整个结构以放置内容文件。在这种情况下,您可能还需要将文件夹信息添加到上面的代码中。
现在,该文件将作为内部资源添加到您的项目中。要从代码访问它,只需使用Properties.Resources.MyFileName
。根据文件的类型,您将获得一个字符串(如果它是纯文本文件)或字节数组(如果它包含任何非文本)。
此外,如果它是一个简单的文本文件,您可以在解决方案资源管理器中双击它,编辑它,并在重建后,新应用程序包含更改的文本(如果您的应用程序中需要一些SQL语句或XML文件,则非常方便)
答案 1 :(得分:1)
路径需要相对于可执行文件的位置,而不是.cs文件的位置。