Taille d'un répertoire d'une machine distante

cs_madjic Messages postés 1 Date d'inscription jeudi 17 août 2006 Statut Membre Dernière intervention 17 août 2006 - 17 août 2006 à 11:51
SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006 - 18 août 2006 à 16:01
Bonjour,

Je cherche le moyen de lire la taille occupée par un répertoire sur le disque dur d'une machine distante.
En local, celà est simple:

internal

staticlong
CalculateDirectorySize(System.IO.DirectoryInfo oDirectory)

{

long
DirectorySize = 0;

// Liste les fichiers

foreach (System.IO.FileInfo oFile in
oDirectory.GetFiles())

{

DirectorySize += oFile.Length;

}

//Liste les sous-répertoires

System.IO.DirectoryInfo[] oUnderDirectories = oDirectory.GetDirectories();

foreach (System.IO.DirectoryInfo oUnderDirectory in
oUnderDirectories)

{

//Calcule la taille de chaque sous-répertoire

DirectorySize += CalculateDirectorySize (oUnderDirectory);

}

return
DirectorySize;

}

Mais je ne parviens pas à le faire avec une machine distante. J'arrive pourtant à lire l'espace occupé et la taille totale d'un disque:

ManagementScope Scope = new ManagementScope("\\\" + sEngine + "\\root\\cimv2");

Scope.Connect();

System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery(string.Format("select FreeSpace,Size from Win32_LogicalDisk where Name='{0}'",sDisk));

ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(Scope,oQuery);

ManagementObjectCollection oReturnCollection = oSearcher.Get();

string sFreeSpace;

string sSize;

foreach( ManagementObject oReturn in oReturnCollection )

{

sFreeSpace = oReturn["FreeSpace"].ToString();

sSize = oReturn["Size"].ToString();

}

Connaissez-vous le moyen de connaitre la taille d'un répertoire d'une machine distante?
(Peut-être est-il possible de spécifier un System.IO.DirectoryInfo sur une machine distante et utiliser la fonction CalculateDirectorySize ?)

Merci,

Nicolas

1 réponse

SupaLou Messages postés 74 Date d'inscription samedi 10 janvier 2004 Statut Membre Dernière intervention 19 septembre 2006
18 août 2006 à 16:01
Salut Nicolas.

Avec WMI comme tu as fait pour récupérer l'espace occupé d'un disque distant cela doit être possible de récupérer la taille occupé par un dossier!
T'as regardé les autres classe qui te sont à disposition comme cim_datafile(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/cim_datafile.asp). Avec celle ci je sais qu'il est possible de récupérer la taille d'un fichier (FileSize) donc...
Sinon pour utiliser DirectoryInfosur une machine distante il me semble que le dossier doit obligatoirement être partagé!!

Voilà en espérant t'avoir données des pistes, tiens moi au courant

@++
0
Rejoignez-nous