Comment connaître la taille d'un dossier

[Résolu]
Signaler
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007
-
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007
-
VS 2005 + Asp.net2 + VB
Je cherche à connaître la taille d'un dossier pour informer le client de l'espace restant à sa disposition.
Auriez vous un bout de code + m'indiquer la méthode d'utilisation du code
Merci

khepri

9 réponses

Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007

Pour ceux que ca intéresse j'ai trouvé...

Private
Sub Page_Load()

Dim fs, f, s

Dim chemin
As
String =
"C:\Inetpub\vhosts\addictfilms.com\httpdocs"
fs = CreateObject(
"Scripting.FileSystemObject")
f = fs.GetFolder(Chemin)
s = f.Size
'espaceUtilise

Label2.Text = Format(s / 1048576, "##,##0") +
" Mo."
'espaceRestant
Dim espaceRestant
As
String = 400 - (Format(s / 1048576,
"##,##0"))
Label3.Text = espaceRestant +
" Mo."
f =
Nothing
fs =
Nothing
End
Sub

khepri
Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

public long DirSize(DirectoryInfo d) 
{   
        long Size = 0;    

        FileInfo[] fis = d.GetFiles();
        foreach (FileInfo fi in fis)
        {     
            Size += fi.Length;   
        }
 
        DirectoryInfo[] dis = d.GetDirectories();
        foreach (DirectoryInfo di in dis)
        {
            Size += DirSize(di);  
        }
        return(Size);  
}

Méthode : 
DirectoryInfo d = new DirectoryInfo("C:\Windows");
          
Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

long taille = DirSize("C:\Windows");
dans ce cas précis ... J'étais resté sur l'exemple MSDN, je suis fainéant
Ttu devrais toi aussi être fainéant et utiliser cette source d'information ..
Pour rappel : http://msdn2.microsoft.com/en-us/library/system.io.directory.aspx
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007

J'avais d'abord été fainéant et j'avais trouvé cette source mais je n'arrive pas à utiliser la classe
Je voudrais mettre affichersur la taille du dossier dans un label mais je n'arrive pas à exploiter le code msdn !

Je vais être plus précise, je voudrais afficher au clien, sur son site web, la plce qu'il lui reste danas le dossier pour charger des vidéos...
Je ne sais pas ou poser la classe et je ne sais pas comment afficher le résultat dans le label, quand je met label.text en dehors d'un sub il ne reconnait pas l'objet et je ne peux pas metrte la classe dans le sub !

J'en suis encore qu'au début de asp.net2, VB même si j'ai déjà développé plusieurs sites avec cette techno je n'ai pas encore eu à créer une classe ni à l'exploiter alors merci de votre aide... si vous pouvez me dire comment utiliser l'un ou l'autre de ces codes.

Est ce que je peux mettre le premier code directement dans le script VB de la page ?
Si oui comment afficher le résulta ?
Pour le code msdn, peut-on mettre cette classe directement dans la page ? dans un sub ? si non ou faut-il la mettre et comment appeler la focntion pour afficher le résultat dans un page sous .net2?
Merci !

khepri
Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

Je te conseille de l'intégrer à une classe, la place qu'il lui reste dans le dossier ? C'est à dire qu'il faut que tu récupère l'espace disque du serveur - l'espace du dossier vidéos ? ou c'est un espace défini ?
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007

Intégrer dans une calsse voilà mon problème... ou on met la classe ?
Comment on récupère les infos

La plce qui reste sur le dossier :
- oui espace disque du serveur, espace défini sur un serveur mutualisé ...
- En fait pour le moement si le client veut uploader ue video mais qu'il ne reste pas assez de place il y a une erreur serveur mais le client ne sait pas que c'est une erreur due au manque de place ...
Je voudrais pouvoir lui fair un message disant que l'erreur est due à un manque d'espace disque et qu'il lui reste XX octets ou Mo de disque dispo

Merci pour vos réponses rapides, je ne pensais pas que j'aurais des infos aussi vite !

khepri
Messages postés
33
Date d'inscription
mardi 18 septembre 2007
Statut
Membre
Dernière intervention
27 septembre 2007

De rien Khepri, et bien pour créer une classe tu ajoutes un nouveau fichier de type classe dans ton application et tu lui donnes un nom,
par exemple DirectoryHelper, ensuite tu ajoutes la méthode Sub GetDirectorySize qui réalise le code que tu as vu sur msdn en vb.net et il te reste plus qu'a construire un objet de ta classe dans ta page aspx ( Dim dh As DirectoryHelper je crois en Vb ) :) et dh.GetDirectorySize() pour l'appeller.
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007

OK je vais essayer ca
Merci

khepri
Messages postés
6
Date d'inscription
samedi 23 octobre 2004
Statut
Membre
Dernière intervention
28 septembre 2007

Je reprends ce bout de code ce matin mais je n'arrive pas du tout à exploiter la classe !
J'ai créé mon fichier de classe ShowDirSize.vb

J'ai essayé ca :
Sub

GetdirectorySize()

Dim DSize
As ShowDirSize
DSize.DirSize(
"/movies")

End
SubIl me donne les instrucitons de remplacer par
Sub

GetdirectorySize()

Dim DSize
As ShowDirSize
ShowDirSize.DirSize()

End
SubMais si j'écris ShowDirSize.DirSize("/movies") j'ai un message disant une valeur de type string ne peut être convertie en System.IO.DirectoryInfo

Ou est ce que j'indique le nom du dossier ?
J'ai encore beaucoup à apprendre de l'utlisation des fontions ! je sais mais là je ne sais pas comment m'y prendre
Merci de votre aide

khepri