vb.net - 应用程序资源中文件的文件路径(作为字符串)是什么?

标签 vb.net printing resources

我问的原因是我想在运行时在应用程序资源中打印一个文件,如下所示:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim printProcess As New Process
printProcess.StartInfo.CreateNoWindow = True
printProcess.StartInfo.FileName = "C:\Users\Geoffrey van Wyk\Documents\Countdown_Timer_Help.rtf"
printProcess.StartInfo.FileName = My.Resources.Countdown_Timer_Help
printProcess.StartInfo.Verb = "Print"
printProcess.Start()
End Sub 

当我使用“C:\ Users \ Geoffrey van Wyk \ Documents \ Countdown_Timer_Help.rtf”作为FileName的参数时,它可以工作。但是当我使用My.Resources.Countdown_Timer_Help时,它说找不到文件。

最佳答案

不,您没有得到它,该文件将仅存在于您的开发机上。部署程序后,文件将嵌入到程序中,无法打印。您必须编写代码,将文件从资源保存到磁盘,然后打印。例如:

  Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
    Dim path As String = Application.UserAppDataPath
    path = System.IO.Path.Combine(path, "Help.rtf")
    System.IO.File.WriteAllText(path, My.Resources.Countdown_Timer_Help)
    Dim printProcess As New Process
    printProcess.StartInfo.CreateNoWindow = True
    printProcess.StartInfo.FileName = path
    printProcess.StartInfo.Verb = "Print"
    printProcess.Start()
  End Sub

鉴于您必须将资源保存到文件中,因此更简单的选择是随应用程序一起部署文件,而不是将其作为资源嵌入并一遍又一遍地写入磁盘。使用Application.ExecutablePath查找文件。为了使它在调试时起作用,您必须将文件复制到bin \ Debug。为此,请使用“项目+添加现有项”将文件添加到项目中,并将“复制到输出目录”属性设置为“如果较新则复制”。

关于vb.net - 应用程序资源中文件的文件路径(作为字符串)是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123257/

相关文章:

java - 如何获取原始打印机托盘 ID

c# - 资源中的 DisplayName 属性?

javascript - 服务器正在尝试将 HTML 表内的 Repeater 控件转换为 HtmlTableRow

.net - .NET 中的 DoEvents

c# - 使用 ManagementObjectSearcher 和 Win32_Printer 检查状态

python - 在实际打印文档之前预览 PDF 文件并选择打印机

java - Maven 资源过滤器不起作用

java - 重写 findResource

sql - 如何在 VB.NET 中编写可读的 SQL

vb.net - VB.NET 中的格式化输入框