Comment connaître la taille d'un dossier

Résolu
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007 - 27 sept. 2007 à 15:16
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007 - 28 sept. 2007 à 12:59
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

khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007
28 sept. 2007 à 12:59
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
3
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 17:04
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");
          
0
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 17:09
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
0
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007
27 sept. 2007 à 20:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 20:18
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 ?
0
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007
27 sept. 2007 à 20:32
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
0
David REI Messages postés 33 Date d'inscription mardi 18 septembre 2007 Statut Membre Dernière intervention 27 septembre 2007
27 sept. 2007 à 20:42
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.
0
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007
27 sept. 2007 à 21:02
OK je vais essayer ca
Merci

khepri
0
khepri Messages postés 6 Date d'inscription samedi 23 octobre 2004 Statut Membre Dernière intervention 28 septembre 2007
28 sept. 2007 à 11:37
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
0
Rejoignez-nous