Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.Net] iniziare un nuovo processo per copiare un file
Forum - C# / VB.NET - [VB.Net] iniziare un nuovo processo per copiare un file

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:08
Venerdì, 17/07/2009
Ciao a tutti
Ecco il codice che sto provando per lanciare un processo che mi copi un file:

Process.Start(System.IO.File.Copy (origine,destinazione))

Non funziona e non riesco a capire se la cosa è fattibile.

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 12:28
Venerdì, 17/07/2009
Perchè utilizzare un processo e non un Thread?
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim t As New Threading.Thread(AddressOf Copia)
  2. t.Start


E poi:
Codice sorgente - presumibilmente C# / VB.NET

  1. Sub Copia()
  2.      IO.File.Copy(origine, destinazione)
  3. End Sub


Dovrebbe funzionare... :k:

P.S. La cosa che facevi tu è totalmente sbagliata :)

Ultima modifica effettuata da riseofapocalypse il 17/07/2009 alle 12:29
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 12:48
Venerdì, 17/07/2009
Errore    1    Risoluzione dell'overload non riuscita perché nessun 'New' accessibile può essere chiamato con questi argomenti:
    'Public Sub New(start As System.Threading.ParameterizedThreadStart)': La firma del metodo 'Public Sub CopyMov(NomeFile1 As Object, SoloNome As Object)' non è compatibile con il delegato 'Delegate Sub ParameterizedThreadStart(obj As Object)'.
    'Public Sub New(start As System.Threading.ThreadStart)': La firma del metodo 'Public Sub CopyMov(NomeFile1 As Object, SoloNome As Object)' non è compatibile con il delegato 'Delegate Sub ThreadStart()'.    C:\Documents and Settings\piero\Desktop\Bat\Module1.vb    69    13    Render_Bat

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 13:01
Venerdì, 17/07/2009
Hai aggiunto dei parametri alla procedura Copia giusto? Tuttavia, con i Thread la questione è diversa: infatti se non usi un trucchetto, puoi passare un solo parametro in questo modo:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim t as new Threading.Thread(AddressOf Copia)
  2. t.Start(parametro)


Il trucchetto di cui parlavo è passare come parametro un array di String nel tuo caso:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim t As New Threading.Thread(AddressOf Copia)
  2. t.Start(New String() {origine, destinazione})


E la procedura ha questo parametro:
Codice sorgente - presumibilmente C# / VB.NET

  1. Sub Copia(ByVal parametri() As String)
  2.      IO.File.Copy(parametri(0), parametri(1))
  3. End Sub


Spero di essere stato chiaro... :k:

PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 13:04
Venerdì, 17/07/2009
Edit:
Scusate ho sbagliato sono sovrappensiero.

Ultima modifica effettuata da manvb.net il 17/07/2009 alle 13:06
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 15:22
Venerdì, 17/07/2009
A questo punto non ci capisco + nulla

Come posso fare?
é giusto il consiglio di Rise??

Ultima modifica effettuata da fosforo il 17/07/2009 alle 15:25
PM Quote
Avatar
manvb.net (Member)
Guru


Messaggi: 663
Iscritto: 28/01/2008

Segnala al moderatore
Postato alle 15:33
Venerdì, 17/07/2009
Si è giusto, sono io che ho sbagliato a rispondere ma qui i messaggi non si possono cancellare.

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 15:37
Venerdì, 17/07/2009
Anzichè chiedere se è giusto il consiglio, perchè non lo provi tu stesso? XD
Comunque mi sono dimenticato di spiegarti una cosa! Ti ricordi che all'inizio ti avevo detto che quel:
Codice sorgente - presumibilmente Plain Text

  1. Process.Start(IO.File.Copy(origine, destinazione))


Era completamente sbagliato? Bene, ti spiego il perchè :) Process.Start() accetta come parametro principale una stringa contenente il nome del processo da avviare, quindi già da questo dovresti capire l'errore :rotfl: inoltre se avessi voluto creare un processo per la copia del file, avresti dovuto creare proprio un nuovo progetto! Un po' dispendioso no? :D

P.S. Eccoti la documentazione riguardo Process.Start() http://msdn.microsoft.com/it-it/library/system.diagnostics ... :k:

Ultima modifica effettuata da riseofapocalypse il 17/07/2009 alle 15:39
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 391
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 16:26
Venerdì, 17/07/2009
Funziona

Grazie Rise

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo