Newsgroup: it.comp.lang.visual-basic
Titolo: [.NET] come dannegiare i files

Volendo fare la copia di diversi files da una cartella ad un altra
danneggiando irreparabilmente il file originale (e la copia)
questo è un metodo che funziona.
E' chiaro che non era il mio intento, dove trovo l'inghippo?
(il codice seguente è stato riadattato per la prova)
dim xFilOrig as string="c:\foto\reportage\Miaimmagine.jpg"
dim PercCopia as string ="C:\miatemp\temp2"
dim xDirRel as string="\"
dim xF as string="Miaimmagine.jpg"
Dim fs as FileStream
If Directory.Exists(PercCopia) = False Then
    Directory.CreateDirectory(PercCopia)
End If
PercCopia = PercCopia+ xDirRel +xF
fs = File.Create(xFilOrig)
fs.Close()
File.Copy(xFilOrig, PercCopia, True)
Grazie, ciao
P.

 fs.Close()
Con queste istruzioni cancelli/danneggi il file originale, ecco perchè la 
copia danneggia il file...
HTH
-- 
Corrado Cavalli [Microsoft .NET MVP-MCP]
UGIdotNET - 
http://www.ugidotnet.org
Weblog: 
http://blogs.ugidotnet.org/corrado
 


E' un esempio preso tale e quale da Visual Studio.
Come dovrei fare?
P.

fs = File.Create(xFilOrig)
Questa è l'istruzione che ti ha fottuto il file (a che ti serve? visto
che c'è già la file.copy ?.
se vuoi andare sul sicuro (si fa per dire) potresti farti una copia
"fatta in casa".
Dim fw As FileStream = New FileStream(fileinoutput,
FileMode.CreateNew)
Dim bw As BinaryWriter = New BinaryWriter(fw)
Dim fr As FileStream = New FileStream(fileininput, FileMode.Open,
FileAccess.Read)
Dim br As BinaryReader = New BinaryReader(fr)
While Not (br.PeekChar = -1)
	bw.Write(br.ReadByte)
End While
fr.Close
fw.Close
=======================================================================
Se mi vuoi scrivere togli le maiuscole
Sveltolampo 
cteniza...@hotmail.com
=======================================================================

 Come dovrei fare?
Ma scusa... secondo te se il tuo file da copiare già ce l'hai cosa cavolo lo
crei a fare?
Va bene copiare i compiti, ma almeno capire quello che si copia ;)
Ciao
-- 
NeoDataType : 
http://www.neodatatype.net
Sito Comune : 
http://www.it-lang-vb.net

 Ciao
Ragazzi, se voi andate a vedere l'esempio che VS riporta per fare la
copia di un file (metodo file.copy) da un percorso ad un altro
è esattamente così come ho fatto.
Il fatto di creare, credo si tratti di creare lo Stream al file string.
Comunque io ho un FileSystemInfo() e scorro gli elementi,
quando trovo un FileSystemInfo di mio interesse
devo farne una copia su  un altro percorso.
I files possono essere anche di 500/1000 MB.
Ciao
P.

 è esattamente così come ho fatto.
mah...
in realtà l'esempio che ho trovato io è questo:
Private Sub FileCopier
    Dim Source As String = "C:\Source.txt"
    Dim Destination As String = "C:\Copy.txt"
    System.IO.File.Copy(Source, Destination, True)
End Sub
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 Il fatto di creare, credo si tratti di creare lo Stream al file string.
E di fare un po' di debug e leggere la guida della Create() non se ne parla?


 Ciao
Se tu vai nella guida di VS2003 e all'interno delle classi .NET Framework
digiti File.copy
Ti da l'esempio che tidico
Ciao

> mah...
A titolo di curiosità ti riporto l'esempio:
Esempio
[Visual Basic, C#, C++] Nell'esempio che segue viene copiato un file nel
percorso specificato, consentendo di sovrascrivere un file di destinazione
con lo stesso nome.
[Visual Basic, C#, C++] Nota   Questo esempio illustra l'utilizzo di una
delle versioni in overload di Copy. Per altri esempi eventualmente
disponibili, vedere i singoli argomenti relativi all'overload.
[Visual Basic]
Imports System
Imports System.IO
Public Class Test
    Public Shared Sub Main()
        ' Specify the directories you want to manipulate.
        Dim path As String = "c:\temp\MyTest.txt"
        Dim path2 As String = path + "temp"
        Try
            Dim fs As FileStream = File.Create(path)
            fs.Close()
            ' Ensure that the target does not exist.
            File.Delete(path2)
            ' Copy the file.
            File.Copy(path, path2)
            Console.WriteLine("{0} copied to {1}", path, path2)
            ' Try to copy the same file again, which should succeed.
            File.Copy(path, path2, True)
            Console.WriteLine("The second Copy operation succeeded, which
was expected.")
        Catch
            Console.WriteLine("Double copying is not allowed, which was not
expected.")
        End Try
    End Sub
End Class

 ha scritto nel
messaggio news:ci4ggl$6e3$1...@balena.cs.interbusiness.it...
