public unsafe string[] GetFiles(string path) { if (!this.IsConnected) { throw new Exception("Not connected to phone"); } string str = this.FullPath(this.CurrentDirectory, path); void * dir = null; if (MobileDevice.AFCDirectoryOpen(this.hAFC, str, ref dir) != 0) { throw new Exception("Path does not exist"); } string buffer = null; ArrayList list = new ArrayList(); MobileDevice.AFCDirectoryRead(this.hAFC, dir, ref buffer); while (buffer != null) { if (!this.IsDirectory(this.FullPath(str, buffer))) { list.Add(buffer); } MobileDevice.AFCDirectoryRead(this.hAFC, dir, ref buffer); } MobileDevice.AFCDirectoryClose(this.hAFC, dir); return((string[])list.ToArray(typeof(string))); }
public unsafe void GetFileInfo(string path, out ulong size, out bool directory) { Dictionary <string, string> fileInfo = this.GetFileInfo(path); size = fileInfo.ContainsKey("st_size") ? ulong.Parse(fileInfo["st_size"]) : ((ulong)0L); bool flag = false; directory = false; if (fileInfo.ContainsKey("st_ifmt")) { string str = fileInfo["st_ifmt"]; if (str != null) { if (!(str == "S_IFDIR")) { if (str == "S_IFLNK") { flag = true; } } else { directory = true; } } } if (flag) { bool flag3; void *dir = null; directory = flag3 = MobileDevice.AFCDirectoryOpen(this.hAFC, path, ref dir) == 0; if (flag3) { MobileDevice.AFCDirectoryClose(this.hAFC, dir); } } }