Laden...

Frage zur Ermittlung der aktuellsten Verzeichnisse

Erstellt von DonGyros vor 16 Jahren Letzter Beitrag vor 16 Jahren 1.506 Views
DonGyros Themenstarter:in
38 Beiträge seit 2006
vor 16 Jahren
Frage zur Ermittlung der aktuellsten Verzeichnisse

Hallo zusammen,

ich arbeite zur Zeit an einer Touchscreen-Steuerung womit ich z.B. Musik, Bilder usw. auswählen kann, sehen kann wer vor der Haustür steht wenn es klingelt usw. .

Auf der Hauptmaske werden unter anderem die neun aktuellsten/neuesten Musikverzeichnisse angezeigt. Das habe ich momentan mit einer Methode in meinem Controller gelöst:


public static ArrayList getNewAlbums()
        {
            if (newAlbums == null)
            {
                newAlbums = new ArrayList(9);
                DateTime newestDate = DateTime.MinValue;

                DirectoryInfo[] dis = GetAllDirs(@"z:\music");
                foreach (DirectoryInfo subDir in dis)
                {
                    if (subDir.GetFiles("*.mp3", SearchOption.TopDirectoryOnly).Length > 0)
                    {
                        if (newestDate < subDir.LastWriteTime)
                        {
                            newestDate = subDir.LastWriteTime;
                            if (newAlbums.Count < 9)
                            {
                                newAlbums.Insert(0, subDir);
                            }
                            else
                            {
                                newAlbums.RemoveAt(8);
                                newAlbums.Insert(0, subDir);
                            }
                        }

                    }
                }
            }
            return newAlbums;
        }

Die ArrayList wird also beim Start des Programmes initial befüllt. Danach überwache ich mittels FileSystemWatcher die Struktur und bei jedem neuen Ordner der z.B. hinzukommt, wird newAlbums angepasst.
Das Ganze scheint auch zu funktionieren allerdings kann es bei einer gewissen Anzahl von Verzeichnisse eine Weile dauern bis beim initialen Befüllen die neun aktuellsten ermittelt worden sind.
Gibt es für diese Idee vielleicht eine bessere Vorgehensweise oder könnte ich eventuell irgendwas verbessern?

Gruß, DonGyros

49.485 Beiträge seit 2005
vor 16 Jahren

Hallo DonGyros,

da es noch kein WinFS gibt, muss man solche Informationen wirklich ermitteln, indem man über die Verzeichnisstruktur läuft.

Siehe in diesem Zusammenhang auch [FAQ] Warum blockiert mein GUI?

herbivore

B
1.529 Beiträge seit 2006
vor 16 Jahren