Dateien Verschieben
- VB.NET
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 51 Antworten in diesem Thema. Der letzte Beitrag () ist von keydrow.
-
-
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Derfuhr“ ()
-
-
-
-
Bitte
IO.Path.Combine
benutzten. Geb dir den Pfad mal mit einer Messagebox aus und dann siehste denke ich mal den Fehler. Muss es nicht auchIO.File.Move(F, "D:\Benutzer\Marvin\Desktop\" & IO.Path.GetFileName(F))
heißen? -
keydrow schrieb:
Zusätzliche Informationen: Die Datei ist vorhanden.
Dann Prüfe mit IO.File ob die Datei Existiert -
-
keydrow schrieb:
Ich will nicht eine bestimmte Datei Verschieben
In dem Beispiel ist eine Schleife, in der du jede Datei in diesem Ordner auf "Exists" prüfen kannst, und darauf halt entsprechend reagieren. -
-
-
-
Also "For Each F" heist so viel wie "für jede Datei"
//EDIT
So ich glaube ich komme der Lösung näher
oder ist das völliger Käse.Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „keydrow“ ()
-
völliger Käse.
a) Hat man dir schon gesagt: Kein My.* Namespace -> nimm den System.IO Namespace
b) MoveFILE -> heißt Datei verschieben. Es heißt nicht MoveFilesOfDirectory sondern MoveFile. Somit gibst du als Parameter auch die Dateinamen an. -
ziemlich Käse, aber das hast du wohl schon selbst rausgefunden. Zunächstmal: Verwende DirectoryInfo und FileInfo - gugge [VB.NET] System.IO Namespace richtig nutzen
Weiters kann "D:\Users\Marvin\Desktop" nicht ziel einer Datei-Verschiebung sein, denn "D:\Users\Marvin\Desktop" gibts schon, und es ist ein Ordner, und keine Datei. Für eine Verschiebung musst du den vollständigen Dateinamen angeben, nicht irgendeinen Ordner, und denken, der wird den Namen schon dranhängen. -
VB.NET-Quellcode
- ' ganz oben Imports System.IO
- Dim destDirectory As String = "C:\Users\Marvin\Desktop"
- For Each sourceFile In IO.Directory.GetFiles("C:\Fraps\Movies") 'sourceFile ist z.B: C:\Fraps\Movies\tmp.txt
- Dim sourceFileName As String = Path.GetFileName(sourceFile) 'sourceFileName ist z.B. tmp.txt
- Dim destFileName As String = Path.Combine(destDirectory, sourceFileName) 'destFileName ist z.B. C:\Users\Marvin\Desktop\tmp.txt
- File.Move(sourceFile, destFileName)
- Next
Als Denkanstoß. -
Der Code
VB.NET-Quellcode
- Dim destDirectory As String = "C:\Users\Marvin\Desktop\"
- For Each sourceFile In IO.Directory.GetFiles("C:\Fraps\Movies\") 'sourceFile ist z.B: C:\Fraps\Movies\tmp.txt
- Dim sourceFileName As String = Path.GetFileName(sourceFile) 'sourceFileName ist z.B. tmp.txt
- Dim destFileName As String = Path.Combine(destDirectory, sourceFileName) 'destFileName ist z.B. C:\Users\Marvin\Desktop\tmp.txt
- ListBox1.Items.Add(sourceFileName)
- File.Move(sourceFile, destFileName)
- Next
Funktioniert schon so wie er ist doch wenn ich aus ein mache kommt
System.IO.DirectoryNotFoundException -
vermutlich weil das Verzeichnis nicht existiert?
Edit:
Bsp:
so würde das ganze ein bisschen vernünftiger aussehen.
Die Parameter müsstes du natürlich noch verändernDieser Beitrag wurde bereits 2 mal editiert, zuletzt von „ident“ ()
-
Ich will es ja nicht auf den Desktop haben war nur als Beispiel und D:\Users\Marvin\Desktop\ gibt es zu 100% da auf D:\ der Desktop ist den ich sehe.
//Edit
Ich habe grade mal D:\.....\Dokumente\Ordner genommen und dorthin geht es. Mein Desktop ist VerbuggtDieser Beitrag wurde bereits 1 mal editiert, zuletzt von „keydrow“ ()
-
Lösung mit Listbox um alle oder nur gewählte zu verschieben
Spoiler anzeigen VB.NET-Quellcode
- Option Strict On
- Public Class Form1
- 'Ordner auslesen + Multiselect
- Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 'AOrdnerin Listbox schreiben - (Form 1)
- Dim Dateiliste() As String = System.IO.Directory.GetFiles("C:\Musik\Blümche -Retro")'Hier Eingang und Ordner 3 ist der Ausgang
- ListBox1.Items.AddRange(Dateiliste)
- 'Multiselect
- Me.ListBox1.SelectionMode = SelectionMode.MultiSimple
- End Sub
- 'Selecktedt Auswahl mit rechter Maustaste aufheben
- Private Sub FileListBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListBox1.MouseDown
- If e.Button = Windows.Forms.MouseButtons.Right Then
- ListBox1.SelectedIndex = ListBox.NoMatches
- End If
- End Sub
- 'Alle verschieben
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- For i As Integer = 0 To ListBox1.Items.Count - 1
- On Error Resume Next
- My.Computer.FileSystem.MoveFile(CStr(ListBox1.Items(i)), "C:\Users\zeus\Desktop\Neuer Ordner (3)\" & IO.Path.GetFileName(CStr(ListBox1.Items(i))), True)
- Next
- On Error Resume Next
- ListBox1.Items.Clear()
- Exit Sub
- End Sub
- 'Nur markierte verschieben
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- For i As Integer = 0 To ListBox1.Items.Count - 1
- On Error Resume Next
- My.Computer.FileSystem.MoveFile(CStr(ListBox1.SelectedItems(i)), "C:\Users\zeus\Desktop\Neuer Ordner (3)\" & IO.Path.GetFileName(CStr(ListBox1.SelectedItems(i))), True)
- Next
- On Error Resume Next
- For i As Integer = ListBox1.Items.Count To 0 Step -1
- If ListBox1.SelectedIndices.Contains(i) = True Then ListBox1.Items.RemoveAt(i)
- Next
- Exit Sub
- End Sub
- End Class
Eine Listbox und zwei Button -Fertig !Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „TVX“ ()
-
Tags
-
Ähnliche Themen
-
6 Benutzer haben hier geschrieben
- keydrow (23)
- Gast (21)
- Higlav (3)
- thefiloe (2)
- ErfinderDesRades (2)
- VincentTB (1)