c# - 从 C# 项目中的文件夹获取许可证文件

标签 c# asp.net web-services file-io relative-path

我有一个许可证文件,我需要在运行时访问它才能创建 pdf 文件。在我创建了内存中的 pdf 之后,我需要对该 pdf 调用一个方法来设置许可证,如下所示:

pdf.SetLicense("pathToLicenseFileHere");

许可证文件与创建 pdf 的 .cs 文件位于同一项目中,但位于单独的文件夹中。我无法让这个简单的事情正确运行,这让我有点难过,因为它真的不应该那么难。 :(

我尝试这样设置路径:

string path = @"\Resources\File.lic";

但这对我来说是行不通的。

编辑:

更多信息。我应该提到这是一个返回 pdf:s 作为 byte[] 的 Web 服务。 Web 服务创建 pdf:s,在此创建过程中,我需要设置许可证文件以从 pdf 文档中删除任何水印。 pdf 本身不保存到光盘,只需要在创建时访问一次许可文件。

最佳答案

所以该文件在您的项目中,您需要将它放在您的应用程序所在的文件夹中的同一文件夹(结构)中。

如果我是对的,有两种方法可以让它发挥作用:

  1. 将文件标记为Content,以便 VS 将其复制到您的 .exe 文件的文件夹中
  2. 如果内存访问足够,将其作为资源添加到您的应用

对于解决方案 1(作为内容文件)

  • 在解决方案资源管理器中标记文件
  • 右键单击文件并选择属性
  • 构建操作更改为内容

现在文件位于 Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "license.txt")

也许您在解决方案目录中添加了一个文件夹,并将需要的文件移到了那里。在这种情况下,VS 将创建您的解决方案中定义的整个结构以放置您的内容文件。在这种情况下,您可能还需要将文件夹信息添加到上面的代码中。

对于解决方案 2(作为内部资源)

  • 将想要的文件(如果尚未发生)添加到您的项目(项目 - 添加现有项目)
  • 在解决方案资源管理器中双击 MyProject - Properties - Resources.resx
  • 单击“添加资源”按钮旁边的向下小箭头,然后选择“添加现有文件...”
  • 在对话框中再次选择你喜欢的文件

现在该文件已作为内部资源添加到您的项目中。要从代码访问它,只需使用 Properties.Resources.MyFileName。根据文件的类型,您将在此处获得一个字符串(如果它是纯文本文件)或一个字节数组(如果它包含任何非文本)。

此外,如果它是一个简单的文本文件,您可以在您的解决方案资源管理器中双击它,编辑它,并在重建后新应用程序包含更改后的文本(如果您的应用程序中需要一些 SQL 语句或 XML 文件,这将非常方便) .

关于c# - 从 C# 项目中的文件夹获取许可证文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673756/

相关文章:

c# - 为什么 DriveInfo.GetDrives() 无法在 Windows 服务中获取网络映射驱动器

c# - Window.Activate() 无法正常工作

c# - 对 onPremisesExtensionAttributes 进行过滤

c# - DateTime.Parse或Convert.ToDateTime不起作用

web-services - 如何使用 Delphi 构建独立的 SOAP Web 服务?

c# - Azure 事件中心 - 同一事件中心中的多种事件类型

ASP.NET MVC - 使用母版页查看,如何设置标题?

c# - IIS7 中的 ASP.NET 站点无响应

android - API Callback_URL 无效调用

android - 如何从 Android 以有限的时间间隔轮询 Web 服务?