Copiare file

giovedì 14 agosto 2008 - 07.26

pinti Profilo | Newbie

ho due computer in lan vorrei trasferire i file di una cartella di un computer ad una cartella dell'altro. Ci sono istruzioni che permettono questo.In pratica copio o sposto file da una cartella del computer in cui opero alla cartella condivisa in rete dell'altro che ha un indirizzo ip \\192.168.etc\cartellacondivisa. Come è possibile farlo?

Grazie

freeteo Profilo | Guru

ciao,
il framework mette a disposizione una serie di classi per gestire i file e le directory, del namespace "System.IO":
- File e FileInfo
- Directory e DirectoryInfo

le "info" sono per avere accesso alle proprietà del file come "data di creazione" lunghezza etc...

Nel tuo caso quindi, ti basta fare un semplice loop per i file di quella cartella e per ognuno di questi copiarlo nella directory di destinazione:

string dirSorgente = "\\..."; string dirDestinazione = "..."; foreach(string file in Directory.GetFiles(dirSorgente)) { string nomeFile = Path.GetFileName(file); File.Copy(file, Path.Combine(dirDestinazione,nomeFile),true); }

come vedi puoi fare la copia al volo, in più usando la classe "Path" puoi facilmente recuperare il nome del file, trascurando la directory, cosa che ti serve nella composizione del file di destinazione.
Il metodo "Combine" invece ti aiuta per evitare di controllare se finisce o meno con la "\", il combine infatti si arrangia lui a fare questo controllo.
Infine,il parametro a "true" è per forzare la sovrascrittura del file di destinazione, altrimenti tornerebbe un'exception, vedi tu se forzare o controllare eventualmente l'esistenza del file di destinazione con "File.Exist(...)"

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

pinti Profilo | Newbie

grazie pensavo si potesse fare solo sullo stesso computer.
Vorrei sottporre un nuovo problema: Devo mandare sms attraverso la porta seriale com1 del computer al modem gsm (siemens t35i)sempre attraverso seriale. Questo lo faccio tramite At commands ed il codice è sotto riportato
Imports System.IO.Ports.SerialPort
Imports System
Imports Microsoft
Imports System.IO
Imports System.Threading.Thread

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Timer1.Tick

Dim comSerial As New System.IO.Ports.SerialPort
Dim atcCommand As String
Dim sphnPhoneNo As String
With comSerial
.PortName = "COM1"
.BaudRate = "9600"
.StopBits = IO.Ports.StopBits.One
.DataBits = 8
.Parity = IO.Ports.Parity.None
.ReadBufferSize = 10000
.ReadTimeout = 1000
.WriteBufferSize = 10000
.WriteTimeout = 10000
.RtsEnable = True


.Open()

.Write("AT+CMGF=1" + vbCrLf)
System.Threading.Thread.Sleep(2000)
sphnPhoneNo = "3385229171"
atcCommand = "AT+CMGS=" + Chr(34) + sphnPhoneNo + Chr(34) + Chr(13) + "Hello World" + Chr(26)
.Write(atcCommand + vbCrLf)
System.Threading.Thread.Sleep(2000)
TextBox1.Text = .ReadExisting()
.DiscardOutBuffer()
.Close()
End With
End Sub
Funziona il messaggio arriva ma è tagliato , ne arriva solo un pezzo oppure una o due lettere ; se allungo la stringa arriva ugualmente tagliata. Da che dipende?Non sono ancora riusito a capirlo?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5