【问题标题】:VB.NET Saving file without save dialog prompt没有保存对话框提示的 VB.NET 保存文件
【发布时间】:2013-06-14 09:43:36
【问题描述】:

我需要知道如何在不使用保存文件对话框提示的情况下保存文件。

目前我的代码是:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        ProgressBar1.Value = 0
        Using sfd As New SaveFileDialog
            With sfd
                If .ShowDialog = Windows.Forms.DialogResult.OK Then
                    .DefaultExt = "exe"
                    .Filter = "Saved.exe (*.exe)|*.exe"
                    '---Save File---
                    '---Code to pack the result with UPX packer---
        ProgressBar1.Value = 100
        MsgBox("Success.", MsgBoxStyle.Information)
    End Sub

我想知道,如何在没有保存文件对话框提示的情况下将名为“Saved.exe”的文件保存到我的应用程序所在的同一文件夹中。 该文件需要保存在程序所在的同一文件夹中,并使用预配置的名称,以便 UPX 打包程序知道要打包什么。

希望有人能帮帮我。

【问题讨论】:

  • 甚至没有关闭。保存文件和获取当前目录的信息是两个不同的事情。

标签: vb.net visual-studio save prompt codedom


【解决方案1】:

获取目录的方式有很多种:

My.Application.Info.DirectoryPath
Application.Current.BaseDirectory
IO.Path.GetDirectoryName(Application.ExecutablePath)
Windows.Forms.Application.StartupPath
IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly().CodeBase)

获得应用程序文件夹后,只需添加要获取完整文件名路径的文件名即可。

【讨论】:

【解决方案2】:

保存文件对话框只允许用户指定他们想要保存文件的位置。

如果您想在没有此对话框的情况下保存文件,您必须自己指定文件名。

您可以使用以下代码之一 sn-ps 来保存文件:

对于文本文件:

My.Computer.FileSystem.WriteAllText("C:\SomeDir\YourFile.txt", "Text", True)

对于二进制文件:

Dim fileContents() As Byte = {244, 123, 56, 34}
My.Computer.FileSystem.WriteAllBytes("C:\SomeDir\YourFile.bin", fileContents, True)

注意:这些直接来自 Visual Studio 中的标准 sn-ps。按Ctrl+KCtrl+X 然后导航到Fundamentals > FileSystem

【讨论】:

    猜你喜欢
    • 2014-02-07
    • 2013-11-09
    • 2011-08-23
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多