public void Test_PrefixDosDevice_1() { var src = @"\\.\"; var scan = new FilepathScanner(src); Assert.IsTrue(DosDevice.TryParse(scan, out var prefix)); }
public void Test_PrefixDosDevice_Normal2() { var src = @"\\.\Volume{xxx-xxx-xxx}\dir\file.txt"; var scan = new FilepathScanner(src); Assert.IsTrue(DosDevice.TryParse(scan, out var prefix)); Assert.AreEqual(@"Volume{xxx-xxx-xxx}", prefix !.Volume); }
public void Test_PrefixDosDevice_Normal1() { var src = @"\\.\C:\dir\file.txt"; var scan = new FilepathScanner(src); Assert.IsTrue(DosDevice.TryParse(scan, out var prefix)); Assert.IsFalse(prefix !.IsUnc); Assert.AreEqual(@"C:", prefix !.Volume); }
public void Test_PrefixDosDevice_UNC3() { var src = @"\\?\UNC\127.0.0.1\share-name"; var scan = new FilepathScanner(src); Assert.IsTrue(DosDevice.TryParse(scan, out var prefix)); Assert.IsTrue(prefix !.IsUnc); Assert.AreEqual(@"127.0.0.1", prefix !.Server); Assert.AreEqual(@"share-name", prefix !.Share); Assert.AreEqual(@"127.0.0.1\share-name", prefix !.Volume); }
public void Test_PrefixDosDevice_UNC2() { var src = @"\\.\UNC\127.0.0.1"; var scan = new FilepathScanner(src); Assert.IsTrue(DosDevice.TryParse(scan, out var prefix)); Assert.IsTrue(prefix !.IsUnc); Assert.AreEqual(@"127.0.0.1", prefix !.Server); Assert.IsTrue(string.IsNullOrEmpty(prefix !.Share)); Assert.AreEqual(@"127.0.0.1", prefix !.Volume); }
private MountedDevicesInfo GetMountedDevices() { var mountedList = new MountedDevicesInfo(); const string keyname = @"MountedDevices"; var key = _hive.GetKey(keyname); foreach (var v in key.Values) { // //"USBSTOR#Disk&Ven_SMI&Prod_USB_DISK&Rev_1100#AA04012700011123&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}" if (v.ValueName.Contains("Volume")) { //Name: "\\??\\Volume{5c7fcd3b-2303-11e3-be7f-24fd52566ede}" var rawBytes = v.ValueDataRaw; var vol = new Volume(); var subname = v.ValueName.Substring(11); vol.GUID = subname.Substring(0, subname.Length - 1); if (rawBytes[0] == 0x5f) { var someval = Encoding.Unicode.GetString(rawBytes, 8, rawBytes.Length - 8); var segs = someval.Split('&'); vol.ValueGUID = segs[4].Split('{')[1].Replace("}", ""); var segs2 = segs[3].Split('#'); vol.Revision = segs2[0].Substring(4); vol.SerialNumber = segs2[1]; vol.Vendor = segs[1].Substring(4); mountedList.Volumes.Add(vol); } } else if (v.ValueName.Contains("DosDevice")) { var rawBytes = v.ValueDataRaw; var dev = new DosDevice(); //\DosDevices\C: dev.DriveLetter = v.ValueName.Substring(12); if (rawBytes[0] == 0x5f) { var someval = Encoding.Unicode.GetString(rawBytes, 8, rawBytes.Length - 8); var segs = someval.Split('&'); dev.GUID = segs[4].Split('{')[1].Replace("}", ""); var segs2 = segs[3].Split('#'); dev.Revision = segs2[0].Substring(4); dev.SerialNumber = segs2[1]; dev.Vendor = segs[1].Substring(4); mountedList.DosDevices.Add(dev); } } } return(mountedList); }