1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnOK_Click(object sender, EventArgs e) { string pathA = @"C:\Users\Sander\Videos\"; string pathB = @"C:\Users\Sander\Vydeos\"; System.IO.DirectoryInfo dir1 = new System.IO.DirectoryInfo(pathA); System.IO.DirectoryInfo dir2 = new System.IO.DirectoryInfo(pathB); IEnumerable<System.IO.FileInfo> list1 = dir1.GetFiles("*.*", System.IO.SearchOption.AllDirectories); IEnumerable<System.IO.FileInfo> list2 = dir2.GetFiles("*.*", System.IO.SearchOption.AllDirectories); bool areIdentical = list1.SequenceEqual(list2); while (areIdentical == false) { MessageBox.Show("Je hebt de downloads nog niet verplaatst!"); } Application.Exit(); } } } |
probleem is, ze heeft een eigen account, en haar standaard directory staat ingesteld, alleen heeft mijn client daar schijt aan en gooit nog steeds alles in mijn docs. bovendien heeft het te maken met haar iets leren, aangezien ik haar bijna elke dag vraag of ze die zooi uit mijn documenten haalt en ze het nooit doet. principekwestie dusquote:Op zaterdag 20 november 2010 16:57 schreef Prutzenberg het volgende:
Waarom zo moeilijk doen? Je kan toch ook gewoon haar standaard download-dir anders instellen?
Of haar een eigen account geven, kan ze er gewoon een zooitje van maken zonder dat je er last van hebt.
zou je bepaalde parameters mee kunnen geven aan die SequenceEqual? want ik zou zo niet weten hoe ik zorg dat twee lists krijg met alleen de filenames.quote:Op zaterdag 20 november 2010 17:01 schreef xprotagonistx het volgende:
Ik ben geen c#, maar ik vermoed dit:
fout: Je kijkt nu of via SequenceEqual of alle FileInfos gelijk zijn. Een FileInfo bevalt de bestandsnaam, maar ook inclusief het pad (dat verschillend is). Verder staat er ook de tijd waarop het bestand gemaakt is, etc. Dat zijn eigenschappen die verschillen, ook al zijn de bestanden qua inhoud hetzelfde.
oplossing: op een andere manier bepalen of bestanden hetzelfde zijn. Je zou kunnen kijken of de namen (excl. pad) hetzelfde zijn en de groottes ook.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | bool bestandInBeideLijsten(IEnumerable ene lijst, IEnumerable ander lijst) { foreach(FileInfo ene in de ene lijst) { foreach(FileInfo andere in de andere lijst) { if (ene.naam.equals(andere.naam) && ene.grootte.equals(andere.grootte)) { return true; } } } return false; } |
hahah daar zeg je me wat.quote:Op zaterdag 20 november 2010 17:08 schreef TwenteFC het volgende:
Kan je niet gewoon naar de totale map grootte kijken?
1 2 3 4 5 | long totalegrootte=0; foreach(bestandinfo bestand in directory) { totalegrootte+=bestand.grootte; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <?php using System; using System.IO; public class ShowDirSize { public static long DirSize(DirectoryInfo d) { long Size = 0; // Add file sizes. FileInfo[] fis = d.GetFiles(); foreach (FileInfo fi in fis) { Size += fi.Length; } // Add subdirectory sizes. DirectoryInfo[] dis = d.GetDirectories(); foreach (DirectoryInfo di in dis) { Size += DirSize(di); } return(Size); } public static void Main(string[] args) { if (args.Length != 1) { Console.WriteLine("You must provide a directory argument at the command line."); } else { DirectoryInfo d = new DirectoryInfo(args[0]); long dsize = DirSize(d); Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, dsize); } } } ?> |
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |