Невозможно создать новый каталог с файлом, используя ресурсы в vb.net

315
Anthony Cox
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". Может кто-нибудь взглянуть и сказать, что я делаю не так?

0
Этот вопрос здесь не по теме и относится к SO (stackoverflow.com) duDE 7 лет назад 0
я не понимаю, как это может быть не по теме, если это связано с программным обеспечением? Anthony Cox 7 лет назад 0
Это 50/50. Это какой-то VBA, который вы запускаете из Excel, верно? Так что это сделало бы это связанным с программным обеспечением. В противном случае это вопрос программирования, который будет Stackoverflow. В любом случае, вы получаете какие-либо сообщения об ошибках или результат просто не создан? Что содержит `My.Resources.StoredInformation`? Seth 7 лет назад 0
Сообщения об ошибках не появляются. Это документ Excel, который содержит заголовки в четырех столбцах. Моя программа пишет в этот файл Excel и заполняет каждый столбец значениями. Anthony Cox 7 лет назад 0
Он просто почему-то пропускает, код находится в событии загрузки Anthony Cox 7 лет назад 0
Это пропускает что? Весь остальной блок, метод или как? Как вы определили, что «это» пропускается? А что такое содержание My.Resources.StoredInformation? Seth 7 лет назад 0
@Seth - когда я имел в виду «Skips», я имею в виду, что кажется, что он просто не выполняет весь оператор «IF». Я даже проверил, была ли новая папка создана в моих документах, а ее нет. Под «контентом» вы подразумеваете, какой это тип файла? Anthony Cox 7 лет назад 0
@Seth - я опубликовал свою программу и затем установил ее, когда я запустил программу, появилась ошибка, и она сказала, что; System.IO.DirectoryNotFoundException: не удалось найти часть пути 'C: \ Users \ ARROW-ASSASSIN \ Documents \ Housing \ Stored Information.xlsx' Anthony Cox 7 лет назад 0
Ваш фрагмент не имеет никаких указаний на то, что `My.Resources.StoredInformation`, если это было 0 байт, что` WriteAllBytes`, возможно, не создает файл. Это была моя мысль. Включили ли вы какой-либо отладочный вывод или использовали реальные средства отладки, такие как точки останова и пошаговое выполнение, чтобы проверить, какие части этого процесса выполняются? Путь в этом сообщении об ошибке правильный? Seth 7 лет назад 0
Я понятия не имею, что вы подразумеваете под "0 байт, что` WriteAllBytes` ". Файл был создан, когда я изменил путь к своему рабочему столу и удалил папку «Корпус», поэтому путь будет «C: \ Users \ ARROW-ASSASSIN \ Desktop \ Stored Information.xlsx», но тогда файл будет поврежден. Все, что я делаю, это запускаю режим «отладки», чтобы запустить мою программу. Я все еще нуб, когда дело доходит до vb.net Anthony Cox 7 лет назад 0

1 ответ на вопрос

1
Anthony Cox

В конце концов понял это правильно. Ключ должен был использовать 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) 

Похожие вопросы