vb.net program za kopiranje kroz lan mrezu problem exception

vb.net program za kopiranje kroz lan mrezu problem exception

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Problem je sto bih zeleo da iz select path izaberem svoj fajl i kroz neki text box unesem putanju do network putanje, deo koda za copy tj taj button koji odradjuje kopiranje je ovaj

 My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileName, txtNetworkPath.Text)

a greska je
Citat:
An unhandled exception of type 'System.IO.IOException' occurred in Microsoft.VisualBasic.dll

Additional information: Could not complete operation since a directory already exists in this path '\\My-pc\d\Games'.


Zamisao je da recimo se unese samo IP ili ime pc/a i da se samo u text box izgenerise \\imePC\c ili d particija npr..Ili da se napravi neki imenik, pa moze u isti da se upisuju recimo ime, pa ime racunara to da cuva u neku bazu...i onda se izabere ime i on u text box upise ceo path..Znaci bukvalno samo kada se upise npr ime racunara i particija da on ispise \\ kada i gde treba..Ali prvo bih trebao ovako da vidim, da ja cisto celu putanju kopiram u tajtext box pa da vidim hoce li iskopirati...Ali izbaci mi taj exception..



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Lead Developer ⠀ ⠀⠀⠀⠀⠀⠀ Go 5 Creative
  • Pridružio: 14 Feb 2008
  • Poruke: 12265

Citat:The combined path points to an existing directory
https://msdn.microsoft.com/en-us/library/36xbexyf%28v=vs.90%29.aspx

Proveri još jednom da li prosleđuješ i filename.

Mislim da ovako trebada izgleda putanja :

'\\My-pc\d\Games\fajl.ekstenzija'.



offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Napisano: 05 Jun 2015 21:54

reseno dodavanjem
  Dim orignalFilePath As String = OpenFileDialog1.FileName         Dim destinationFilePath As String = System.IO.Path.Combine(txtNetworkPath.Text, System.IO.Path.GetFileName(orignalFilePath))
i onda u copy button

 My.Computer.FileSystem.CopyFile(orignalFilePath, destinationFilePath)

Sad jos da vidim kako da se odradi ako se ima hidden share...

Dopuna: 06 Jun 2015 12:45

Imam problem sa funkcijom, da radi isto kao za foledr, tu mi baca exception

Private Function GetDestinationFolderPath(location As String, folderName As String)         Dim counter As Integer = 0         Dim desiredFolderPath As String = System.IO.Path.Combine(location, String.Format("{0}{1}", folderName))         While System.IO.Directory.Exists(desiredFolderPath)             counter += 1             desiredFolderPath = System.IO.Path.Combine(location, String.Format("{0} ({1}){2}", folderName, counter.ToString))         End While         Return desiredFolderPath     End Function

u ovoj liniji
 Dim desiredFolderPath As String = System.IO.Path.Combine(location, String.Format("{0}{1}", folderName))
Evo i greske

Dopuna: 06 Jun 2015 12:49

offline
  • Milan
  • Pridružio: 17 Dec 2007
  • Poruke: 14370
  • Gde živiš: Niš

Nisam baš u toku sa VB, ali je problem verovatno ovde:tomislav91 ::String.Format("{0}{1}", folderName)Dakle, ako već navodiš dva argumenta u formatu stringa, dva argumenta moraš i da proslediš. Ako format treba da ima dva argumenta koja su ista, onda pišeš ovako: Citat:String.Format("{0}{0}", folderName) Dalje u kodu imaš još jednu ovakvu grešku.

offline
  • Huskar
  • strukovni inzenjer elektrotehnike i racunarstva
  • Pridružio: 31 Maj 2008
  • Poruke: 881
  • Gde živiš: Kula

Napisano: 06 Jun 2015 16:13

Da, da reseno je..Very Happy Jer sam kopirao od File, i onda dok skontam sta treba izmenjati...Very Happy Ima li ko ideju kako sa sakrivenom share folderima/particijama? Neverujem da ce proci kao c$...

Trebao bih jos da recimo korisnik unese samo ime racunara i particiju, pa onda ako hoce jos nesto neka kuca rucno...

Dopuna: 08 Jun 2015 18:10

A sad imam pitanje oko kopiranja foldera, ako isti vec postoji na tom mestu. Trebalo bi da ga sacuva, ako kliknemo NO("no" je ustvari tzv "keep both") treba da sacuva taj drugi i da doda u imeni samo (n), gde je n ustvari broj od 1, pa sve dalje dok god ima taj folder, stavljace (2), (3) itd...Problem jetaj sto on ne izbaci nikakvu gresku, a ustvari ne uradi nista, kada kliknem NO, on samo obavesti preko messageboxa koji sam stavio da je uradjeno, a tog foldera uopste nema, tj tog koji treba da ima dodato (1) u imenu..Samo stoji taj prvokopirani.
Kada sam ovo koristio za fajl, radi kakko treba, ali sta je problem kada je folder u pitanju, gde je greska??


  If System.IO.Directory.Exists(destinationFolderPath) Then                     Dim nextAvialableFolderPath As String = GetDestinationFolderPath(txtFolderNetworkPath.Text, System.IO.Path.GetDirectoryName(originalFolderPath))                     Select Case MessageBox.Show("Fajl vec postoji. Hoces li da zamenis(yes) ili da sacuvas oba (no) ili da prekines operaciju (Close)", "Greska", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)                         Case Windows.Forms.DialogResult.Yes                             If System.IO.Directory.Exists(destinationFolderPath) Then                                 System.IO.Directory.Delete(destinationFolderPath, True)                                 My.Computer.FileSystem.CopyDirectory(originalFolderPath, destinationFolderPath)                                 MessageBox.Show("Done!", "Overwrite", MessageBoxButtons.OK, MessageBoxIcon.Information)                             End If                         Case Windows.Forms.DialogResult.No                             My.Computer.FileSystem.CopyDirectory(originalFolderPath, nextAvialableFolderPath)                             MessageBox.Show("Urađeno!", "Overwrite", MessageBoxButtons.OK, MessageBoxIcon.Information)

a evo i funkcije
Private Function GetDestinationFolderPath(location As String, folderName As String)         Dim counter As Integer = 0         Dim desiredFolderPath As String = System.IO.Path.Combine(location, String.Format("{0}", folderName))         While System.IO.Directory.Exists(desiredFolderPath)             counter += 1             desiredFolderPath = System.IO.Path.Combine(location, String.Format("{0} ({1})", folderName, counter.ToString))         End While         Return desiredFolderPath     End Function      

Ko je trenutno na forumu
 

Ukupno su 908 korisnika na forumu :: 47 registrovanih, 10 sakrivenih i 851 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3028 - dana 22 Nov 2019 07:47

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Atomski čoban, axa, babaroga, Boris90, Cigi, CUCLA70, dane007, Djokislav, DM1994, draggan, dragoljub11987, flash12, GreenMan, hyla, indja2, ivan979, ivance95, jaeger, joca83, Kubovac, KUZMAR, lacko2, Lazarus2, Magister2, majorgaspar, Marko Marković, Markoni29, matorigile, MB120mm, Metanoja, mgaji21, MiG-29M2, Milan A. Nikolic, MILO-VAN, ozzy, rovac, S-lash, sasa.zoric, sfb, shsoft02, SsssssNOVI, tmanda323, vlvl, zixmix, zlatkovuka, Zori