private string[] ParseList(LibGPhoto2.CameraList list) { int count = list.Count(); string[] results = new string[count]; for (int i = 0; i < count; i++) { results[i] = list.GetName(i); } return(results); }
/// <summary> /// Gets all the files at the specified path /// </summary> /// <param name="directory">The path to get the files at /// A <see cref="System.String"/> /// </param> /// <returns>An array containing all the files found /// A <see cref="File"/> /// </returns> public File[] GetFiles(string directory) { string fullDirectory = CombinePath(BaseDirectory, directory); using (LibGPhoto2.CameraList list = camera.Device.ListFiles(fullDirectory, camera.Context)) { string[] filenames = ParseList(list); File[] files = new File[filenames.Length]; for (int i = 0; i < files.Length; i++) { files[i] = GetFileInternal(directory, filenames[i]); } return(files); } }
private int CountRecursive(string directory, bool recursive) { int count = 0; using (LibGPhoto2.CameraList list = camera.Device.ListFiles(directory, camera.Context)) count += list.Count(); if (!recursive) { return(count); } using (LibGPhoto2.CameraList list = camera.Device.ListFolders(directory, camera.Context)) foreach (string s in ParseList(list)) { count += CountRecursive(CombinePath(directory, s), recursive); } return(count); }
/// <summary> /// Lists all the folders found at the specified path /// </summary> /// <param name="directory"> /// A <see cref="System.String"/> /// </param> /// <returns>An array containing the names of all the directories /// A <see cref="System.String"/> /// </returns> public string[] GetFolders(string directory) { using (LibGPhoto2.CameraList list = camera.Device.ListFolders(CombinePath(BaseDirectory, directory), camera.Context)) return(ParseList(list)); }