// Token: 0x06001A2E RID: 6702 RVA: 0x0006FEE8 File Offset: 0x0006E0E8 private void AssertDirectory(SteamworksRemoteStorageFileSystem.Node node, UPath srcPath) { if (node is SteamworksRemoteStorageFileSystem.FileNode) { throw new IOException(string.Format("The source directory `{0}` is a file", srcPath)); } }
// Token: 0x06001A2A RID: 6698 RVA: 0x0006FD84 File Offset: 0x0006DF84 private void AddNodeToTree(SteamworksRemoteStorageFileSystem.Node newNode) { UPath directory = newNode.path.GetDirectory(); this.GetDirectoryNode(directory).AddChild(newNode); this.pathToNodeMap[newNode.path] = newNode; }
// Token: 0x06001A48 RID: 6728 RVA: 0x00070184 File Offset: 0x0006E384 public void RemoveChild(SteamworksRemoteStorageFileSystem.Node node) { int num = Array.IndexOf <SteamworksRemoteStorageFileSystem.Node>(this.childNodes, node); if (num >= 0) { this.RemoveChildAt(num); } }
// Token: 0x06001A46 RID: 6726 RVA: 0x000700B8 File Offset: 0x0006E2B8 public void AddChild(SteamworksRemoteStorageFileSystem.Node node) { int childCount = this.childCount + 1; this.childCount = childCount; if (this.childCount > this.childNodes.Length) { Array.Resize <SteamworksRemoteStorageFileSystem.Node>(ref this.childNodes, this.childCount); } this.childNodes[this.childCount - 1] = node; node.parent = this; }
// 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; }