我正在为Quiz App创建一个VB项目(在VS 2013中)。所以我在项目中有一些预设问题(我在项目中创建了一个文件夹,并添加了一个文本文件)。
我的问题是如何读取和写入该文件的内容?或者,如果没有办法在安装应用程序时将该txt文件复制到Documents/MyAppname
,以便我可以从该位置进行编辑?
答案 0 :(得分:1)
在下面的示例中,我专注于访问可执行文件夹下的一个文件夹,而不是其他文件夹中的文件。如果文件存在,则读取文件,然后根据每行上面或下面的第一个字符行,然后将数据保存回同一文件。当然,有很多方法可以处理文件,但这只是一个。
以下内容在解决方案资源管理器的项目文件夹中创建了一个名为Files的文件夹,添加到文本文件,textfile1.txt和textfile2.txt。在每个行中放置几个非空行,每行以一个字符开头。每个文本文件,在解决方案资源管理器下的属性中设置复制到输出目录为"如果更新则复制"。
希望这与你想要的一致。由于我没有使用ClickOnce来验证这一点,它可能会或可能不会按预期通过ClickOnce工作。
在表单中,带有以下代码的一个按钮。
Public Class Form1
Private TextFilePath As String =
IO.Path.Combine(
AppDomain.CurrentDomain.BaseDirectory, "Files")
Private TextFiles As New List(Of String) From
{
"TextFile1.txt",
"TextFile2.txt",
"TextFile3.txt"
}
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim FileName As String = ""
' loop thru each file
For Each fileBaseName As String In TextFiles
FileName = IO.Path.Combine(TextFilePath, fileBaseName)
' only access file if it exist currently
If IO.File.Exists(FileName) Then
' read file into string array
Dim contents As String() = IO.File.ReadAllLines(FileName)
' upper or lower case line based on first char.
' this means you can flip flop on each click on the button
For x As Integer = 0 To contents.Count - 1
If Char.IsUpper(CChar(contents(x))) Then
contents(x) = contents(x).ToLower
Else
contents(x) = contents(x).ToUpper
End If
Next
' save changes, being pesstimistic so we use a try-catch
Try
IO.File.WriteAllLines(FileName, contents)
Catch ex As Exception
Console.WriteLine("Attempted to save {0} failed. Error: {1}",
FileName,
ex.Message)
End Try
Else
Console.WriteLine("Does not exists {0}", FileName)
End If
Next
End Sub
End Class
答案 1 :(得分:0)
这可以帮助您
Dim objStreamReader As StreamReader
Dim strLine As String
'Pass the file path and the file name to the StreamReader constructor.
objStreamReader = New StreamReader("C:\Boot.ini")
'Read the first line of text.
strLine = objStreamReader.ReadLine
'Continue to read until you reach the end of the file.
Do While Not strLine Is Nothing
'Write the line to the Console window.
Console.WriteLine(strLine)
'Read the next line.
strLine = objStreamReader.ReadLine
Loop
'Close the file.
objStreamReader.Close()
Console.ReadLine()
您还可以查看this链接。