Vb.net 我试图让我的vb程序从文件中读取
我试图让我的程序在VisualBasic上读取一个文件,但它一直说该文件不存在,我尝试了不同的文件路径和其他方法,但我似乎无法让它工作 我的代码是:Vb.net 我试图让我的vb程序从文件中读取,vb.net,filesystems,Vb.net,Filesystems,我试图让我的程序在VisualBasic上读取一个文件,但它一直说该文件不存在,我尝试了不同的文件路径和其他方法,但我似乎无法让它工作 我的代码是: Option Strict On Imports System.IO Public Class MOTform Dim custfile As StreamReader Dim strCustArray() As String Dim strCustDetails As String Private Sub For
Option Strict On
Imports System.IO
Public Class MOTform
Dim custfile As StreamReader
Dim strCustArray() As String
Dim strCustDetails As String
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
radMOTYes.Checked = True
If File.Exists("cust_db.txt") Then
' Open the file.
custfile = File.OpenText("cust_db.txt")
Else
MessageBox.Show("cust_db.txt" & " does not exist.")
End If
strCustDetails = custfile.ReadLine()
strCustArray = Split(strCustDetails, ",")
Me.Text = strCustDetails
custfile.Close()
End Sub
转到要从中读取的文件,右键单击该文件,单击“属性”,从位置复制路径并将其插入代码中由于没有任何路径,代码希望该文件位于程序运行的同一文件夹中。当您部署最终可执行文件时,这很好,因为没有BIN\DEBUG。
在debug inside VS中,出于同样的原因,您需要将该文件放在该文件夹中。已调试的exe在该文件夹中运行。您可以将txt文件添加到项目中,并将属性更改为“始终复制” 但是,将数据文件保存在程序运行的同一文件夹中不是一个好做法,尤其是如果该文件不是只读的。
如果将应用程序部署在某种保留文件夹(如C:\program files)中,操作系统会阻止应用程序更改该文件 我建议使用配置文件添加AppSettings键来指定保存该文件的文件夹,然后在运行时读取该键以构建路径 比如说
<appSettings>
<add key="DataFolder" value="C:\programdata\myappdatafolder"/>
</appSettings>
通过这种方式,您可以更改配置文件,使您的文件位于最适合您的场景的位置是否在Visual Studio中运行此代码?请记住,在调试中,当前文件夹位于项目根BIN\debug(或x86变体)文件夹下,您应该指向
。Fileexists
到完全限定路径,以确保您在正确的文件夹中查找。是的,谢谢,它可以在那里工作。您可以将文件放在该文件夹之外吗?请阅读并获取。这不是debugmycodorme.Com。即使文件在文件夹外,它也可以工作,但是您必须将代码中的路径更改为新路径。我必须将其发送给我的讲师,以便文件路径不会与他的笔记本电脑上的路径不同吗,你的教授将无法从文件中读取,因为他的计算机上可能不存在该文件。我猜你的讲师只会检查你的代码而不运行它,因为他应该知道他没有你引用的文件。如果我的答案对你有帮助,也一定要给它打分
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
radMOTYes.Checked = True
Dim fullFileName = Path.Combine(ConfigurationManager.AppSettings("DataFolder"), "cust_db.txt")
If File.Exists(fullFileName) Then
' Open the file.
custfile = File.OpenText(fullFileName)
Else
MessageBox.Show(fullFileName & " does not exist.")
End If