OldSchoolHack

Register / Login English

Frage zu Visual Basic und Dateien


icon Frage zu Visual Basic und Dateien #1

Join Date: Nov 2012

Posts: 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

Join Date: Aug 2008

Posts: 2594

User-Rating:

17 positive
5 negative
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 Only registered and activated users can see links.. Dort befindet sich alles was du brauchst.
Zum verschieben gibt es dort die Methode Only registered and activated users can see links., hier ist ein Only registered and activated users can see links..
Falls du ersetzen möchtest, prüfst du zuerst ob die Datei existiert mit Only registered and activated users can see links., wenn ja führst Only registered and activated users can see links. aus. Und danach Move.

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

Join Date: Nov 2012

Posts: 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

Join Date: Aug 2008

Posts: 2594

User-Rating:

17 positive
5 negative
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

Join Date: Jan 2013

Posts: 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

Join Date: Aug 2008

Posts: 2594

User-Rating:

17 positive
5 negative
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

Join Date: Nov 2012

Posts: 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

Join Date: Jan 2013

Posts: 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

Join Date: Nov 2012

Posts: 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

Join Date: Jan 2013

Posts: 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

Join Date: Nov 2012

Posts: 82

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

EDIT//:

Problem gelöst. Fertig

icon #12

Join Date: Aug 2008

Posts: 2594

User-Rating:

17 positive
5 negative
Quote from 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)


Quote from 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...
Quote from hukditur
Ist vielleicht nicht die Beste Variante, aber die Beste ist auch nicht die einzige
Es ist nicht nur die beste sondern eine schlechteste.

Quote from 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.