Ricerca file in una cartella remota

mercoledì 11 luglio 2007 - 12.57

trinity Profilo | Guru

salve a tutti,
ho creato un programma in vb net 2005, spesso debbo fare degli aggiornamenti e il file exe aggiornato lo salvo su una cartella remota accessibile tramite internet (conosco anche user e pass dell'accesso ftp).
io vorrei creare un modo che quando i miei clienti aprono il programma ed il pc è connesso ad internet, il programma faccia la ricera nella certella remota e se trova il file exe allora avvisa il clliente che è possibile eseguire un aggiornamento altrimenti se non trova nulla nn esce alcun messaggio.

Come posso fare?

ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

munissor Profilo | Senior Member

Io uso un approccio diverso (uso http ma è uguale credo)..

metto un file update.xml sul client e sul server fatto più o meno in questo modo..

<updater version="1.0.0.0" >
...
</updater>

Ogni tot se la connessione è disponibile scarichi il file updatee.xml dal server, lo analizzi e se la versione è più recente scarichi gli altri files (che io specifico nel file update.xml..tu non so se hai un file unico o cosa..li scegli tu).

Il codice per i download è questo:

/// <summary>
/// Esegue il download di un file
/// </summary>
/// <param name="source">Url del file sorgente</param>
/// <param name="destination">Percorso del file di destinazione</param>
/// <remarks>
/// Il parametro <c>source</c> dev'essere un indirizzo relativo a un protocollo
/// file://, http:// o https://. Altre sorgenti non sono al momento supportate.
/// </remarks>
public static void DownloadFile(string source, string destination)
{
if (source == null)
throw new ArgumentNullException("source");
if (destination == null)
throw new ArgumentNullException("destination");

WebRequest request = null;
WebResponse response = null;
Stream input = null;
Stream output = null;
try
{
request = WebRequest.Create(source);

response = request.GetResponse();

input = response.GetResponseStream();

if (!Directory.Exists(Path.GetDirectoryName(destination)))
{
Directory.CreateDirectory(Path.GetDirectoryName(destination));
}

output = File.Create(destination);

byte[] buffer = new byte[4096];
int count = input.Read(buffer, 0, buffer.Length);
while (count > 0)
{
output.Write(buffer, 0, count);

count = input.Read(buffer, 0, buffer.Length);
}
}
finally
{
if (input != null)
input.Close();

if (output != null)
output.Close();

if (response != null)
response.Close();
}
}
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5