Buscador de drives & Files

En este foro podemos pedir peticiones de tutoriales o dudas que queramos.
Hola, hace poco salió el juego de Harry Potter 7 parte 2 y existe una app para pasarlo de dvd 9 a 2dvd5, el asunto es que yo quiero hacer la mía propia, esta app identifica la unidad optica donde está el juego insertado y pregunta en dónde quiere que se copien los achivos por lo que identifica las unidades de almacenamiento permitiendo elegir la unidad de destino desde un listbox.

Será que alguien me echa una mano con eso? 1 sería identificar la unidad de origen de los archivos a copiar y lo otro sería identificar las unidades de almacenamiento y a traves de listbox dejarme elegir la unidad donde se copiará el archivo. Gracias.

Muy bueno su foro :)
Para eso deberias usar las acciones de Drive y mas concretamente Drive.GetInformation , he realizado un ejemplo de como extraer la info de los discos de tu sistema , despues de la extension label debes saber cual es el Label del DVD de harry potter , por ejemplo la pelicula 8 millas en DVD el label es 8_MILE como veras en la captura :

Imagen

Entoces para detectar la salida hariamos unos filtros buscando el nombre del dvd (Volume Label) muestra en la unidad , Para ello inserta el DVD y lo veras en MI PC o usa el ejemplo que adjunto para ver el Label que muestra , una forma podría ser esta función :
function DetectLabel(VolumeLabel)
if type(VolumeLabel) == "string" then
	tDrives = Drive.Enumerate();
	sFound = "";
	if tDrives then
		for i,drives in pairs(tDrives) do
			infodrives = Drive.GetInformation(drives);
				if infodrives then
					if infodrives.Label == VolumeLabel then
						sFound = drives;
						break
					
					end
				end
		end
		
	end
	return sFound;
end
end
Esta función retorna la unidad donde se encuentra el label (VolumeLabel) en caso de que este en alguna y
para enumerar los discos y su info en un ListBox esta:
function Listdrives(ListBoxName)
tDrives = Drive.Enumerate();
if tDrives then
	for i,drives in pairs(tDrives) do
		infodrives = Drive.GetInformation(drives);
		if infodrives then
		label = infodrives.Label;
		fSystem  = infodrives.FileSystem;
		sNumber = infodrives.SerialNumber;
		Dname = infodrives.DisplayName;
		ListBox.AddItem(ListBoxName,drives.."  [Label] : "..label.."  [fSystem] : "..fSystem.."  [Serial] : "..sNumber.."  [Display Name] : "..Dname,drives);
		end
	end
end
end
Espero te sirva :demo: , aquí va el .apz:

HIDE: ON
Hidebb Message Hidden Description
interesante
Imagen
thanks
Thank you
:pc: :pc: :pc: :pc:

INTERESANTE ... :yes:
tnks bro :yes:
Thank you muy bien
Bravo e grazie
Creo que es lo que buscaba :pc:
thanks
Gracias