Files = {};
---------------------------------------------------------------------------------------
AllSupportedFiles ="All Supported Files|*.mp3;*.avi;*.asf;*.asx;*.wmd;*.wmv;*.wvx;*.wmp;*.wmx;*.mpg;*.mpeg;*.m1v;*.mpa;*.mpe;*.mpv2;*.mov;*.mpv;*.mp4;*.divx;*.avc;*.mkv;*.rm;*.xvid;*.3gp;*.flv;*.vob;*.rmvb;*.m4v;*.wax;*.3g2;*.dat;*.ts;*.nsv;*.mts;*.m2ts;*.xwmv;*.mjpeg;*.mjpg;*.dif;*.dv;*.nut;*.qt;*.yuv;*.h.264;*.h.261;*.h.264*.mp3;*.aif;*.ogg;*.wma;*.rm;*.ra;*.ogv;*.wav;*.ac3;*.aac;*.m4a;*.mp2;*.ape;*.flac;*.au;*.mp3pro;*.mpc;*.amr;*.m4r;*.aiff;*.m4b;*.cda;*.cue;*.ram;*.mpa;*.mp1;*.mid;*.midi;*.raw;*.mp2v;*.ace*.png;*.jpg;*.jpeg;*.gif;*.bmp|"
VideoFiles ="Video Files|*.ram;*.avi;*.asf;*.asx;*.wmd;*.wmv;*.WMV;*.wvx;*.wmp;*.wmx;*.mpg;*.mpeg;*.m1v;*.mpa;*.mpe;*.mpv2;*.mov;*.mpv;*.mp4;*.divx;*.avc;*.mkv;*.rm;*.xvid;*.3gp;*.flv;*.vob;*.rmvb;*.m4v;*.wax;*.3g2;*.dat;*.ts;*.nsv;*.mts;*.m2ts;*.xwmv;*.mjpeg;*.mjpg;*.dif;*.dv;*.nut;*.qt;*.yuv;*.h.264;*.h.261;*.h.264|"
AudioFiles ="Audio Files|*.mp3;*.aif;*.ogg;*.wma;*.ra;*.ogv;*.wav;*.ac3;*.aac;*.m4a;*.mp2;*.ape;*.flac;*.au;*.mp3pro;*.mpc;*.amr;*.m4r;*.aiff;*.m4b;*.cda;*.cue;*.mpa;*.mp1;*.mid;*.midi;*.raw;*.mp2v;*.ace|"
ImageFiles ="Image Files|*.png;*.jpg;*.jpeg;*.gif;*.bmp|"

Files = Dialog.FileBrowse(false, "Open File", _DesktopFolder, AllSupportedFiles..VideoFiles..AudioFiles..ImageFiles , "", "dat", true, false);
if Files[1] ~= "CANCEL" then
	-- Traverse the table containing the selected file paths
	for Index, FilePath in Files do
		-- Assign the desired text and data to variables
		Data = FilePath;
		-- Set Text to the filename (without extension) using String.SplitPath
		Text = String.SplitPath(FilePath).Filename;
		-- Add the item to the ListBox		
		ListBox.AddItem("ListBox1", Text, Data);
	end
end

 