static void TestDirectory(DirectoryInfo dir, FolderTreeEnumerator enumerator) { List <FileInfo> files = new List <FileInfo>(dir.GetFiles()); files.Sort(CompareFileInfo); foreach (FileInfo file in files) { if (0 == (file.Attributes & (FileAttributes.Hidden | FileAttributes.System)) && (file.Extension.Equals(".jpg", StringComparison.OrdinalIgnoreCase) || file.Extension.Equals(".doc", StringComparison.OrdinalIgnoreCase))) { Trace.WriteLine(enumerator.Current); if (file.FullName != enumerator.Current) { Trace.Fail(string.Format("{0} != {1}", file.FullName, enumerator.Current)); } enumerator.MoveNext(); enumerator.MovePrev(); if (file.FullName != enumerator.Current) { Trace.Fail(string.Format("{0} != {1} (fwd/bck)", file.FullName, enumerator.Current)); } enumerator.MoveNext(); } } foreach (DirectoryInfo subdir in dir.GetDirectories()) { if (0 == (subdir.Attributes & (FileAttributes.Hidden | FileAttributes.System))) { TestDirectory(subdir, enumerator); } } }
public void Next() { Children.Remove(fFormerPanel); fFormerPanel.BeginAnimation(Panel.OpacityProperty, null); // Remove animation (not required but this assists the garbage collector) fFormerPanel.Done(); // Notify former panel that it is no longer in use. // Memory leak checking /* * GC.Collect(); * GC.WaitForPendingFinalizers(); * GC.Collect(5, GCCollectionMode.Forced); */ // Rotate the panels down fFormerPanel = fActivePanel; fActivePanel = fNextPanel; fNextPanel = null; // Stop the former panel fFormerPanel.Stop(); // Animate the next panel in and play it if (fFadeTime >= cMinFadeTime) { DoubleAnimation animation = new DoubleAnimation(0.0, 1.0, fFadeTime); fActivePanel.BeginAnimation(Panel.OpacityProperty, animation, HandoffBehavior.SnapshotAndReplace); } else { fActivePanel.Opacity = 1.0; } fActivePanel.IsMuted = fMuted; fActivePanel.Play(); if (!fDirectionIsForward) { fEnumerator.MoveNext(); fEnumerator.MoveNext(); fDirectionIsForward = true; } // Prep the next panel fEnumerator.MoveNext(AdvanceFlags.Wrap); string filename = fEnumerator.Current; if (string.IsNullOrEmpty(filename)) { fNextPanel = new TextPanel(cNoImagesFound); } else { fNextPanel = SlidePanel.Load(new Uri(filename)); fNextPanel.ShowMetadata = fShowMetadata; } fNextPanel.Opacity = 0.0; Children.Add(fNextPanel); }
public static void Test() { FolderTreeEnumerator enumerator = new FolderTreeEnumerator(); enumerator.IncludeExtensions = new string[] { ".jpg", ".doc" }; enumerator.RootDirectories = new string[] { "C:\\Documents and Settings" //@"C:\Documents and Settings\brandt.redd\My Documents\Geocaches\Archive\TB Winnie's Wagon_files" }; Trace.Assert(enumerator.MoveNext()); TestDirectory(new DirectoryInfo(enumerator.RootDirectories[0]), enumerator); Trace.Assert(!enumerator.MoveNext()); enumerator.Reset(); Trace.Assert(enumerator.MoveNext()); TestDirectorySkip(new DirectoryInfo(enumerator.RootDirectories[0]), enumerator); Trace.Assert(!enumerator.MoveNext()); }