text: public override string[] ListAll(){lock (this){ISet<string> files = new JCG.HashSet<string>();foreach (string f in cache.ListAll()){files.Add(f);}try{foreach (string f in @delegate.ListAll()){files.Add(f);}}catch (DirectoryNotFoundException ){if (files.Count == 0){throw; }}return files.ToArray();}}