// Token: 0x06001A2F RID: 6703 RVA: 0x0006FF0A File Offset: 0x0006E10A protected override IEnumerable <UPath> EnumeratePathsImpl(UPath path, string searchPattern, SearchOption searchOption, SearchTarget searchTarget) { this.UpdateDirectories(); SearchPattern search = SearchPattern.Parse(ref path, ref searchPattern); List <UPath> foldersToProcess = new List <UPath> { path }; SortedSet <UPath> entries = new SortedSet <UPath>(UPath.DefaultComparerIgnoreCase); while (foldersToProcess.Count > 0) { UPath upath = foldersToProcess[0]; foldersToProcess.RemoveAt(0); int num = 0; entries.Clear(); SteamworksRemoteStorageFileSystem.EnterFileSystemShared(); try { SteamworksRemoteStorageFileSystem.Node directoryNode = this.GetDirectoryNode(upath); if (upath == path) { this.AssertDirectory(directoryNode, upath); } else if (!(directoryNode is SteamworksRemoteStorageFileSystem.DirectoryNode)) { continue; } SteamworksRemoteStorageFileSystem.DirectoryNode directoryNode2 = (SteamworksRemoteStorageFileSystem.DirectoryNode)directoryNode; for (int i = 0; i < directoryNode2.childCount; i++) { SteamworksRemoteStorageFileSystem.Node child = directoryNode2.GetChild(i); if (!(child is SteamworksRemoteStorageFileSystem.FileNode) || searchTarget != SearchTarget.Directory) { bool flag = search.Match(child.path); bool flag2 = searchOption == SearchOption.AllDirectories && child is SteamworksRemoteStorageFileSystem.DirectoryNode; bool flag3 = (child is SteamworksRemoteStorageFileSystem.FileNode && searchTarget != SearchTarget.Directory && flag) || (child is SteamworksRemoteStorageFileSystem.DirectoryNode && searchTarget != SearchTarget.File && flag); UPath item = upath / child.path; if (flag2) { foldersToProcess.Insert(num++, item); } if (flag3) { entries.Add(item); } } } } finally { SteamworksRemoteStorageFileSystem.ExitFileSystemShared(); } foreach (UPath upath2 in entries) { yield return(upath2); } SortedSet <UPath> .Enumerator enumerator = default(SortedSet <UPath> .Enumerator); } yield break; yield break; }
// Token: 0x06001A29 RID: 6697 RVA: 0x0006FD68 File Offset: 0x0006DF68 private SteamworksRemoteStorageFileSystem.DirectoryNode AddDirectoryToTree(UPath path) { SteamworksRemoteStorageFileSystem.DirectoryNode directoryNode = new SteamworksRemoteStorageFileSystem.DirectoryNode(path); this.AddNodeToTree(directoryNode); return(directoryNode); }