[C#] Folder Size

Pagina: 1
Acties:
  • 307 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik wil de size van een folder met C#, maar ik krijg rare waardes :)

Ik krijg netjes de folders terug met de eerste loop en wil die gebruiken om per folder aan te geven wat de grootte is. Ik krijg echter de lengte van de files terug :|

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
            string[] array1 = Directory.GetDirectories(@"C:\Users\User\Desktop\test\");

            foreach (string name in array1)
            {
                rowCountFolder += 1;
                oSheet.Cells[rowCountFolder, 1] = (name);

                foreach (string f in Directory.GetFiles(name))
                {
                    b += f.Length;
                }
                rowCountSize += 1;
                oSheet.Cells[rowCountSize, 2] = (b);
                b = 0;
            }


Ik heb deze link gebruikt:
http://msdn.microsoft.com.../system.io.directory.aspx

Wie kan mij de juite richting op trappen? :>

Acties:
  • 0 Henk 'm!

  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Folder {
    private static double sizeInBytes; 

    public static double Size(string directory, bool deep) {
        DirectoryInfo dir = new DirectoryInfo(directory);
        foreach(FileInfo f in dir.GetFiles()) {
            sizeInBytes += f.Length;
        }
        if(deep) {
            foreach(DirectoryInfo d in dir.GetDirectories()) {
                Size(d.FullName, deep);
            }
        }
        return sizeInBytes;
    }

    static void Main() {
        Console.WriteLine("The total folder size in bytes is {0}",  Folder.Size(@"c:\sonysys", true));
    }
}

Google first hit, die werkt wel :) Beetje ombouwen zonder class en you're done :)

'You like a gay cowboy and you look like a gay terrorist.' - James May


Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

Je koppelt nu toch gewoon de lengte van de string f aan b?
Als je nu eens met DirectoryInfo en FileInfo aan de slag gaat?

edit:
Of je pakt het voorgekauwde sample van mijn voorganger...:)


Ten tweede: het laatste sample op de aangehaalde MSDN pagina doet exact wat jij wil, waarom verander je dat dan zo?

[ Voor 44% gewijzigd door TeeDee op 15-11-2009 12:59 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op zondag 15 november 2009 @ 12:57:
Je koppelt nu toch gewoon de lengte van de string f aan b?
Als je nu eens met DirectoryInfo en FileInfo aan de slag gaat?

edit:
Of je pakt het voorgekauwde sample van mijn voorganger...:)


Ten tweede: het laatste sample op de aangehaalde MSDN pagina doet exact wat jij wil, waarom verander je dat dan zo?
Omdat ik eerste alle folder in een array wil plaatsen en die dan gebruiken om per folder de size aan te geven. De voorbeelden zijn per folder :)

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op zondag 15 november 2009 @ 13:04:
[...]

Omdat ik eerste alle folder in een array wil plaatsen en die dan gebruiken om per folder de size aan te geven. De voorbeelden zijn per folder :)
...en dat kan niet samen omdat...? ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Phyxion
  • Registratie: April 2004
  • Niet online

Phyxion

_/-\o_

Verwijderd schreef op zondag 15 november 2009 @ 13:04:
[...]


Omdat ik eerste alle folder in een array wil plaatsen en die dan gebruiken om per folder de size aan te geven. De voorbeelden zijn per folder :)
Mja,

C#:
1
2
3
4
foreach (string f in Directory.GetFiles(name))
                {
                    b += f.Length;
                }

Nu doe je de lengte van de fileNames, je wilt de FileInfo hebben van de files, niet de strings.

'You like a gay cowboy and you look like a gay terrorist.' - James May


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Phyxion schreef op zondag 15 november 2009 @ 13:09:
[...]

Mja,

C#:
1
2
3
4
foreach (string f in Directory.GetFiles(name))
                {
                    b += f.Length;
                }

Nu doe je de lengte van de fileNames, je wilt de FileInfo hebben van de files, niet de strings.
De bedoeling was elke file te pakken in de folders (recursive) en dat bij elkaar op te tellen :)

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 23:59

TeeDee

CQB 241

Verwijderd schreef op zondag 15 november 2009 @ 13:04:
[...]


Omdat ik eerste alle folder in een array wil plaatsen en die dan gebruiken om per folder de size aan te geven. De voorbeelden zijn per folder :)
Het aangehaalde voorbeeld is een recursive method. Geen reden om dingen niet te combineren zoals NMe dat zegt.

*snip*

Mag je dat zelf ergens inpassen.

[ Voor 22% gewijzigd door Creepy op 15-11-2009 13:14 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:27

Creepy

Tactical Espionage Splatterer

Nou, dan doe je dat toch? Was is specifiek je probleem? f is een string en daar pak je de lengte van. Dat is heel wat anders dan de grootte van de file met de naam f opzoeken.

Ga er nu echt zelf eens mee aan de slag en kijk gewoon eens hoe het werkt. Je lijk gewoon zo snel mogelijk iets werkens te willen hebben zonder zelf moeite te willen doen, en dat is hier nu niet de bedoeling.

@TeeDee: ik heb je code even verwijderd. Dit is heel erg simpel zelf te zoeken en als de topicstarter dat vertikt dan houdt het gewoon op ;) Kant en klare stukjes code geven zien we hier liever niet. Dat wordt domweg gekopieerd en daar leer js niks van.

[ Voor 61% gewijzigd door Creepy op 15-11-2009 13:16 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.