Kein neues Verzeichnis mit Datei unter Verwendung von Ressourcen in vb.net erstellen

474
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 

Es erstellt nicht meinen Ordner "Housing" oder meine Datei "Stored Information.xlsx". Könnte jemand bitte einen Blick darauf werfen und mir sagen, was ich falsch mache?

0
Diese Frage ist hier off-topic und gehört zu SO (stackoverflow.com) duDE vor 7 Jahren 0
Ich sehe nicht, wie es vom Thema ablenken kann, wenn es mit Software zusammenhängt? Anthony Cox vor 7 Jahren 0
Es ist 50/50. Es ist ein VBA, in dem Sie aus Excel heraus laufen, oder? Das würde also Software-bezogen machen. Ansonsten ist es eine Programmierfrage, die Stackoverflow wäre. Trotzdem erhalten Sie Fehlermeldungen oder wird das Ergebnis nur nicht erstellt? Was enthält `My.Resources.StoredInformation`? Seth vor 7 Jahren 0
Es werden keine Fehlermeldungen angezeigt. Es ist ein Excel-Dokument, das Überschriften in vier Spalten enthält. Mein Programm schreibt in diese Excel-Datei und füllt jede Spalte mit Werten. Anthony Cox vor 7 Jahren 0
Es wird aus irgendeinem Grund übersprungen, der Code befindet sich im Ladeereignis Anthony Cox vor 7 Jahren 0
Es überspringt was? Der ganze andere Block, Methode oder was? Wie haben Sie festgestellt, dass "es" übersprungen wird? Und was ist der Inhalt von "My.Resources.StoredInformation"? Seth vor 7 Jahren 0
@Seth - wenn ich es "Skips" meinte, dann meine ich, dass es nicht die ganze "IF" -Anweisung ausführt. Ich habe sogar überprüft, ob in meinen Dokumenten ein neuer Ordner erstellt wurde und es keinen gab. Mit "Inhalt" meinen Sie, um welche Art von Datei handelt es sich? Anthony Cox vor 7 Jahren 0
@Seth - Ich habe mein Programm veröffentlicht und dann installiert. Als ich das Programm startete, erschien ein Fehler und es wurde darauf hingewiesen. System.IO.DirectoryNotFoundException: Es wurde kein Teil des Pfads 'C: \ Users \ ARROW-ASSASSIN \ Documents \ Housing \ Stored Information.xlsx' gefunden. Anthony Cox vor 7 Jahren 0
Ihr Snippet hat keinen Hinweis darauf, was My.Resources.StoredInformation, wenn es 0 Bytes waren, dass WriteAllBytes die Datei möglicherweise nicht erstellt. Das war mein Gedanke. Haben Sie einige Debug-Ausgaben hinzugefügt oder tatsächliche Debugging-Tools wie Haltepunkte und schrittweise Ausführung verwendet, um zu überprüfen, welche Teile davon ausgeführt werden, wenn sie ausgeführt werden? Ist der Pfad in dieser Fehlermeldung korrekt? Seth vor 7 Jahren 0
Ich habe keine Ahnung, was Sie unter "0 Bytes that" WriteAllBytes "" verstehen. Die Datei wurde erstellt, als ich den Pfad zu meinem Desktop änderte und den Ordner "Housing" entfernte, sodass der Pfad "C: \ Users \ ARROW-ASSASSIN \ Desktop \ Stored Information.xlsx" lautete. Die Datei wäre jedoch beschädigt. Alles was ich mache ist, den Debug-Modus auszuführen, um mein Programm zu starten. Ich bin immer noch ein Noob, wenn es um vb.net geht Anthony Cox vor 7 Jahren 0

1 Antwort auf die Frage

1
Anthony Cox

Irgendwann habe ich es richtig verstanden. Der Schlüssel sollte verwendet werden CreateDirectory(), um den gesamten Verzeichnispfad einschließlich des HousingVerzeichnisses am Ende der Hierarchie zu erstellen .

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)