OldSchoolHack

Registrieren / Anmelden Deutsch

Frage zu Visual Basic und Dateien


icon Frage zu Visual Basic und Dateien #1

Anmeldungsdatum: Nov 2012

Beiträge: 82

Hallo meine lieben Forenuser
Ich hätte da mal ne Frage... Undzwar  habe ich mir ein kleines Programm gemacht und will jetzt auf Knopfdruck (Button1) eine Datei von Punkt A nach Punkt B verschieben. Wenn die Datei schon in dem Ordner existiert sollte er die auch selbst ersetzen. Bloß bekomme ich dies niht hin und im Internet finde ich auch keinen passenden Beitrag der mir hilft... Wenn es möglich ist will ich auch das die Datei "versteckt" ist die bei dem Programm mit dabei ist, sodass diejenigen die das Benutzen die 2. Datei garnet sehen. Wäre echt klasse wenn mit jemand helfen kann. Danke im vorraus!

icon #2

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
Ich muss dir leider mitteilen, dass sich hier hauptsächlich niemand mit VB auskennt. Mit Visual Basic kann man höchstens einen externen hack machen, es ist für hacken nicht sehr gut geeignet genau so wie C#.
Es gibt genügend Forums die sich extra mit Visual Basic beschäftigen, dort könnte deine Frage besser beantwortet werden.
Zu deine erste Frage, es gibt eine Klasse namens Um Links zu sehen, musst du dich registrieren. Dort befindet sich alles was du brauchst.
Zum verschieben gibt es dort die Methode Um Links zu sehen, musst du dich registrieren, hier ist ein Um Links zu sehen, musst du dich registrieren.
Falls du ersetzen möchtest, prüfst du zuerst ob die Datei existiert mit Um Links zu sehen, musst du dich registrieren, wenn ja führst Um Links zu sehen, musst du dich registrieren aus. Und danach Move.

Zu deine zweite Frage, die habe ich nicht ganz verstanden was du machen willst.
icon #3

Anmeldungsdatum: Nov 2012

Beiträge: 82

Oke ja danke das mit den verschieben klappt jetzt.
Mit der einen Frage meine ich, dass wenn die Benutzer die mein Tool benutzen einmal das Programm bekommen UND die Datei die verschoben werden soll. Und die Datei die verschoben werden soll, soll versteckt bzw. "unsichtbar" gemacht werden das diese Datei nicht sichtbar ist.

//Edit:

Ich habe da noch ein Problem

       My.Computer.FileSystem.MoveFile("Desktop\Ordner\Datei", _
       "C:\Users\Jan\AppDataoaming\********\bin\Datei", _
       FileIO.UIOption.AllDialogs, _
       FileIO.UICancelOption.ThrowException)

Das Problem ist, dass ich die Datei nicht von Desktop aus verschieben kann...
Dann kommt eine Fehlermeldung das er die Datei nicht findet obwohl der Pfad richtig angegeben ist.
icon #4

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
TEXT Code:
  1. Dim sourcePath As String = TextBox1.Text
  2. Dim destPath As String = TextBox2.Text
  3. If File.Exists(destPath) Then
  4. File.Delete(destPath)
  5. End If
  6. File.Move(sourcePath, destPath)
Also das hier funktioniert bei mir.
Du muss drauf achten, dass Pfad zum Desktop so aussieht:
C:\Users\(Benutzername)\Desktop
icon #5

Anmeldungsdatum: Jan 2013

Beiträge: 3

Die funktionen hab zu meinen VB zeiten benutzt.
Das wäre Datei verschieben
TEXT Code:
  1. Imports System.IO
  2.  
  3. FileIO.FileSystem.MoveFile("DATEIPFAD", "AUSGABEPFAD")
Das wäre Ordner verschieben
TEXT Code:
  1. Imports System.IO
  2.  
  3. FileIO.FileSystem.MoveDirectory("ORDNERPFAD", "AUSGABEPFAD")

Würde die jeweiligen funktionen aber mit einer try-catch abfrage "verpacken"

EDIT: Hab vergessen das es für die spezielle Ordner spezielle Codes gibt:

TEXT Code:
  1. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.DERGEWÜNSCHTEORDNER)
Visual Basic Express sollte dir eh anzeigen was du einsetzen kannst, bei Visual Studio ist es zuminderst so.

Und zu deiner Ersetzen funktion, würde ich es so machen:
TEXT Code:
  1. Try 'Wenn Datei von nicht exestiert
  2. FileIO.FileSystem.MoveFile("DATEIPFAD", "AUSGABEPFAD")
  3. Catch ex As Exception 'Wenn Datei schon exestiert
  4. FileIO.FileSystem.DeleteFile("PFAD", 0, FileIO.RecycleOption.DeletePermanently)
  5. FileIO.FileSystem.MoveFile("DATEIPFAD", "AUSGABEPFAD")
  6. End Try


Mfg,
hukditur
icon #6

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
Wenn man keine Ahnung einfach mal...
Try Catch ist Fehlerbehandlung für Exceptions um auszugene was der Fehler war. Das was du geschrieben hast ist absolutes Blödsinn.
http://msdn.microsoft.com/de-de/library/ms973849.aspx

icon #7

Anmeldungsdatum: Nov 2012

Beiträge: 82

TEXT Code:
  1. Dim Benutzer As String = My.User.Name
  2.  
  3. Try
  4. FileIO.FileSystem.MoveFile("C:\Users\Benutzer\Desktop\Ordner\Datei", "C:\Users\Benutzer\AppDataoaming\Ornder\bin\Datei")
  5. Catch ex As Exception
  6. FileIO.FileSystem.DeleteFile("C:\Users\Benutzer\AppDataoaming\Ordner\bin\Datei", 2, FileIO.RecycleOption.DeletePermanently)
  7. FileIO.FileSystem.MoveFile("C:\Users\Benutzer\Desktop\Ornder\Datei", "C:\Users\Benutzer\AppDataoaming\Ordner\bin\Datei")
  8. End Try

So alles funzt prima ab jetzt bis auf den Benutzernamen des Users herausfinden. Komme da net klar hat da jemand noch ne Antwort drauf?
icon #8

Anmeldungsdatum: Jan 2013

Beiträge: 3

Habe es damals immer so genutzt und hatte nie Probleme damit. Ist vielleicht nicht die Beste Variante, aber die Beste ist auch nicht die einzige
Außerdem arbeite ich nicht mehr mit VB, daher habe ich einfach in meinen alten Projekten nachgesehen und dies gefunden.
icon #9

Anmeldungsdatum: Nov 2012

Beiträge: 82

Ja ich habe auch keine Probleme damit bloß soll der wenn man Button1 klickt den Benutzernamen des Computers, um den Pfad zu ergänzen, in den Zeilen einsetzen... klappt aber net
icon #10

Anmeldungsdatum: Jan 2013

Beiträge: 3

Willst du unbedingt den Benutzernamen wissen? Wenn nicht, ich geh mal davon aus, und du auf den Desktop zugreifen willst, nimm einfach:

TEXT Code:
  1. Dim pfad As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
  2. Dim pfad2 As String = pfad + "\verschiebmich.exe" 'Falls es so nicht klappt dan so:
  3. Dim pfad2 As String = pfad + "verschiebmich.exe"
  4.  

Mfg,
hukditur
icon #11

Anmeldungsdatum: Nov 2012

Beiträge: 82

Der findet jetzt den Pfad nicht nach AppDataRoaming...   ^^

EDIT//:

Problem gelöst. Fertig

icon #12

Anmeldungsdatum: Aug 2008

Beiträge: 2594

Benutzer-Bewertung:

17 positiv
5 negativ
Zitat von Fa!l3R
Der findet jetzt den Pfad nicht nach AppDataRoaming...   ^^
Wenn du schon MoveFile und DeleteFile benutzt, dann muss es so heißen:
TEXT Code:
  1. Dim descDir As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
  2. Dim roamingDir As String = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
  3. Dim sourcePath As String = descDir + "datei.txt"
  4. Dim destPath As String = roamingDir + "datei.txt"
  5. If FileIO.FileSystem.FileExists(destPath) Then
  6. FileIO.FileSystem.DeleteFile(destPath)
  7. End If
  8. FileIO.FileSystem.MoveFile(sourcePath, destPath)


Zitat von hukditur
Habe es damals immer so genutzt und hatte nie Probleme damit
Nur weil es funktioniert heißt es nicht, dass es richtig ist und schon garnicht wenn du die Logik dahinter nicht verstehst...
Zitat von hukditur
Ist vielleicht nicht die Beste Variante, aber die Beste ist auch nicht die einzige
Es ist nicht nur die beste sondern eine schlechteste.

Zitat von hukditur
Außerdem arbeite ich nicht mehr mit VB, daher habe ich einfach in meinen alten Projekten nachgesehen und dies gefunden.
Anscheinend "arbeitest" du mit garkeine Programmiersprache. Try catch ist in allen Prorgammiersprachen gleich. Und es ist nicht für so was gedacht.


EDIT:
@Fa!l3R
Hab noch geschrieben, als du editiert hast.