private HashSet <VirtualPath> ReadDeletes() { return(new HashSet <VirtualPath>(read())); IEnumerable <VirtualPath> read() { var path = Path.Combine(this.HostPath, ".deletes"); if (File.Exists(path)) { using var reader = File.OpenText(path); string name; while ((name = reader.ReadLine()) != null) { if (!string.IsNullOrWhiteSpace(name)) { var p = VirtualPath.TryParse(name.Trim()); if (p != null) { yield return(p); } } } } } }
/// <summary> /// Canonicalizes a path. /// </summary> public void CanonicalizePath() { var inPath = vm.PhysicalMemory.GetString(vm.Processor.DS, vm.Processor.SI, 128, 0); var path = VirtualPath.TryParse(inPath); if (path == null) { vm.Processor.Flags.Carry = true; vm.Processor.AX = 3; } path = vm.FileSystem.ResolvePath(path); vm.PhysicalMemory.SetString(vm.Processor.ES, vm.Processor.DI, path.ToString()); }