Dim sPath As String
sPath = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments))
For i = 1 To 50
Threading.Thread.Sleep(100)
Application.DoEvents()
Next
If My.Computer.FileSystem.FileExists(sPath & "\Housing\Stored Information.xlsx") Then
Dim APP As New Excel.Application
workbook = APP.Workbooks.Open(sPath & "\Housing\Stored Information.xlsx")
worksheet = workbook.Worksheets("Sheet1")
APP.Visible = False
MessageBox.Show("File Opened!" & Environment.NewLine & "Path: " & sPath & "\Housing\Stored Information.xlsx")
Else
My.Computer.FileSystem.WriteAllBytes(sPath & "\Housing\Stored Information.xlsx", My.Resources.StoredInformation, True)
Dim APP As New Excel.Application
workbook = APP.Workbooks.Open(sPath & "\Housing\Stored Information.xlsx")
worksheet = workbook.Worksheets("Sheet1")
APP.Visible = False
MessageBox.Show("File Created!" & Environment.NewLine & "Path: " & sPath & "\Housing\Stored Information.xlsx")
End If
它没有创建我的文件夹“Housing”或我的文件“Stored Information.xlsx”有人可以看一下并告诉我我做错了什么吗?
答案1
最终成功了。关键是使用CreateDirectory()
创建整个目录路径,包括Housing
层次结构底部的目录。
Dim sPath As String = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Housing")
Dim Fpath As String = sPath & "\Stored Information.xlsx"
IO.Directory.CreateDirectory(sPath) ' If location already exists it will not do anything
If My.Computer.FileSystem.FileExists(Fpath) = False Then
My.Computer.FileSystem.WriteAllBytes(Fpath, My.Resources.StoredInformation, True) ' Don't want to append data (although that would not happen in this instance) so True is used for that.
End If
Dim APP As New Excel.Application
workbook = APP.Workbooks.Open(Fpath)
worksheet = workbook.Worksheets("Sheet1")
APP.Visible = False
MessageBox.Show("File Opened!" & Environment.NewLine & "Path: " & Fpath)