Vb.net visual studio 2019如何知道导入和路径设置的引用
我创建了一个Visual Studio 2019项目,该项目使用FileSystem.FileExists以及StreamWriter和StreamReaderVb.net visual studio 2019如何知道导入和路径设置的引用,vb.net,sqlite,path,reference,Vb.net,Sqlite,Path,Reference,我创建了一个Visual Studio 2019项目,该项目使用FileSystem.FileExists以及StreamWriter和StreamReader 我还创建了一个名为Resource的文件夹,目的是在该文件夹中创建一个txt文件 我知道我需要告诉作者和读者在哪里可以找到文件,所以我使用了这些代码行 Dim path As String = "C:/Users/Me/source/repos/TestForms/TestForms/Resource/" If Not My.Compu
我还创建了一个名为Resource的文件夹,目的是在该文件夹中创建一个txt文件
我知道我需要告诉作者和读者在哪里可以找到文件,所以我使用了这些代码行
Dim path As String = "C:/Users/Me/source/repos/TestForms/TestForms/Resource/"
If Not My.Computer.FileSystem.FileExists(path & "Check.txt") Then
因为我还不完全了解如何处理SQLite数据库,所以假设我将数据库放在文件夹资源中。如果我制作了一个将在另一台计算机上运行的EXE程序包,那么根据我的猜测,字符串路径将无法工作在学习的过程中,我一直看到这行代码。我看不到数据库的路径
m_dbConnection = New SQLiteConnection("Data Source=MyDatabase.sqlite; Version=3;")
当然,我现在正在处理一个txt文件,但如果它是SQLite数据库文件我的问题是连接如何知道数据库在哪里? 我还需要导入此参考导入系统。IO
来自NetBeans的我被自动导入宠坏了
第二个问题VS 2019没有自动导入功能吗? 我正在添加解决方案探索的屏幕截图
试图将资源文件夹添加到无法正常工作的资源中
下面的流读取器代码没有错误
Private Sub btnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
readDATA()
End Sub
Private Sub readDATA()
Dim line As String
Using reader As New StreamReader(path & "Check.txt", True)
line = reader.ReadToEnd.Trim
tbHaveOne.Text = line
End Using
End Sub
创建Check.txt的代码 Private Sub frmThree_Load(sender As Object, e As EventArgs) Handles MyBase.Load
haveFILE()
'tbHaveTwo.Text = frmOne.vR'KEEP see frmOne
'tbHaveOne.Select()
End Sub
Public Sub haveFILE()
'If My.Computer.FileSystem.FileExists(path & "Check.txt") Then
' MsgBox("File found.")
'Else
' MsgBox("File not found.")
'End If
If Not My.Computer.FileSystem.FileExists(path & "Check.txt") Then
' Create or overwrite the file.
Dim fs As FileStream = File.Create(path & "Check.txt")
fs.Close()
tbHaveTwo.Text = "File Created"
tbHaveOne.Select()
Else
tbHaveTwo.Text = "File Found"
tbHaveOne.Select()
End If
End Sub
您几乎不应该硬编码绝对路径。如果要引用程序文件夹下的路径,请使用
Application.StartupPath
作为根路径和相对路径,例如
Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)
那么从哪里运行程序就无关紧要了。对于其他标准文件夹路径,应使用Environment.GetFolderPath
或My.Computer.FileSystem.specialDirectory
。对于非标准路径,应允许用户使用FolderBrowserDialog
、OpenFileDialog
或SaveFileDialog
进行选择,然后,如果合适,将该路径保存到设置或类似设置中
对于数据库连接字符串,一些ADO.NET提供程序支持在数据文件路径中使用“| DataDirectory |”,并在运行时替换。替换什么取决于应用程序的类型和部署方式。对于Web表单应用程序,它解析为App_数据文件夹。对于ClickOnce Windows应用,它解析为专用数据文件夹。对于其他Windows应用程序,它解析为程序文件夹,就像Application.StartupPath
。我认为SQLite提供程序支持它,但我不是100%确定。如果有,您可以使用以下内容:
m|u dbConnection=New SQLiteConnection(“数据源=| DataDirectory |\Resource\MyDatabase.sqlite;版本=3;”)
编辑:
如果在解决方案资源管理器中将数据文件添加到项目中,并且希望这些文件成为已部署应用程序的一部分,则需要对其进行配置以实现这一点。在解决方案资源管理器中选择该文件,然后将生成操作
设置为内容
,将复制到输出目录
属性设置为始终复制
,或者,如果您打算在应用程序运行时对文件进行更改,如果更新,则复制
生成时,该文件将与EXE一起从项目源文件夹复制到输出文件夹。然后,您可以在运行时使用Application.StartupPath
访问它。这意味着在调试期间以及部署之后,因为它将被复制到“\bin\Release”输出文件夹以及“\bin\Debug”输出文件夹。如果将该文件添加到解决方案资源管理器中的文件夹中,则该文件将被复制到,因此,我前面提到使用该文件的原因如下:
Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)
您几乎不应该硬编码绝对路径。如果要引用程序文件夹下的路径,请使用Application.StartupPath
作为根路径和相对路径,例如
Dim filePath=Path.Combine(Application.StartupPath,“Resource\Check.txt”)
那么从哪里运行程序就无关紧要了。对于其他标准文件夹路径,应使用Environment.GetFolderPath
或My.Computer.FileSystem.specialDirectory
。对于非标准路径,应允许用户使用FolderBrowserDialog
、OpenFileDialog
或SaveFileDialog
进行选择,然后,如果合适,将该路径保存到设置或类似设置中
对于数据库连接字符串,一些ADO.NET提供程序支持在数据文件路径中使用“| DataDirectory |”,并在运行时替换。替换什么取决于应用程序的类型和部署方式。对于Web表单应用程序,它解析为App_数据文件夹。对于ClickOnce Windows应用,它解析为专用数据文件夹。对于其他Windows应用程序,它解析为程序文件夹,就像Application.StartupPath
。我认为SQLite提供程序支持它,但我不是100%确定。如果有,您可以使用以下内容:
m|u dbConnection=New SQLiteConnection(“数据源=| DataDirectory |\Resource\MyDatabase.sqlite;版本=3;”)
编辑:
如果在解决方案资源管理器中将数据文件添加到项目中,并且希望这些文件成为已部署应用程序的一部分,则需要对其进行配置以实现这一点。在解决方案资源管理器中选择该文件,然后将生成操作
设置为内容
,将复制到输出目录
属性设置为始终复制
,或者,如果您打算在应用程序运行时对文件进行更改,如果更新,则复制
生成时,该文件将与EXE一起从项目源文件夹复制到输出文件夹。然后,您可以使用Application.StartupPath Private Sub frmThree_Load(sender As Object, e As EventArgs) Handles MyBase.Load
haveFILE()
End Sub
Public Sub haveFILE()
If Not System.IO.File.Exists(filePath) Then
System.IO.File.Create(filePath).Dispose()
tbHaveTwo.Text = "File Created"
tbHaveOne.Select()
Else
My.Computer.FileSystem.FileExists(filePath) ' Then
tbHaveTwo.Text = "File Found"
tbHaveOne.Select()
End If
'This line of code created the File this was in the Bin > Debug folder Check.txtCheck.txt
'If Not My.Computer.FileSystem.FileExists(filePath & "Check.txt") Then
End Sub
Sub PlaySystemSound()
My.Computer.Audio.PlaySystemSound(
System.Media.SystemSounds.Hand)
End Sub
Private Sub btnWrite_Click(sender As Object, e As EventArgs) Handles btnWrite.Click
If tbHaveOne.Text = "" Then
PlaySystemSound()
'MsgBox("Please enter a username.", vbOKOnly, "Required Data")
'If MsgBoxResult.Ok Then
' Return
'End If
Const Title As String = "To EXIT Click OK"
Const Style = vbQuestion
Const Msg As String = "Enter Data" + vbCrLf + vbNewLine + "Then Write Data"
Dim result = MsgBox(Msg, Style, Title)
If result = vbOK Then
'MsgBox("Enter Data")
tbHaveOne.Select()
Return
End If
End If
writeDATA()
End Sub
Private Sub writeDATA()
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter(filePath, True)
file.WriteLine(tbHaveOne.Text)
file.Close()
tbHaveOne.Clear()
tbHaveTwo.Text = "Data Written"
End Sub
Private Sub btnRead_Click(sender As Object, e As EventArgs) Handles btnRead.Click
readDATA()
End Sub
Public Sub readDATA()
Dim fileReader As String
fileReader = My.Computer.FileSystem.ReadAllText(filePath)
tbHaveOne.Text = fileReader
End Sub