Página 1 de 1

file watcher

Publicado: 30 Ago 2019 19:05
por NicolasG
Hola que tal, estaba haciendo una especie de file watcher con la librería lua file system(lfs.dll)

La cosa es que no sabría como especificar que paso realmente con un archivo, como se puede ver en el código a continuación, tampoco me es relevante, así ya me vale, pero lo publico en dudas por si alguien quiere o puede mejorar el código :awwyiss-1417754513:



On show
lfs = require ('lfs');

Page.StartTimer(1000, 1);

WATCHER_lastmodified = (os.time());
WATCHER_tblfiles      = ({});
WATCHER_first         = (true);
WATCHER_directory     = ("C:\\Users\\lacalculadoradewindowsnosirveparamultiplicar\\Documents\\porno\\enanos con 2 penes\\");

function Watcher(directory)
	local dir_files = (lfs.dir(directory));
	for Filename in dir_files do
		if(Filename ~= "." and Filename ~= "..")then
			local File = (directory..Filename);
			if(lfs.attributes(File, "mode") == "file")then
				if(#WATCHER_tblfiles == 0)then	WATCHER_tblfiles[1] = (File);	end
				
				local Add = (true);
				for _, tFile in pairs(WATCHER_tblfiles) do
					if(tFile ~= File)then
						Add = (true);
					elseif(tFile == File)then
						Add = (false);
						break;
					end
				end
				
				if(Add == true)then
					WATCHER_tblfiles[#WATCHER_tblfiles+1] = (File);
					
					if(WATCHER_first == false)then
						ListBox.AddItem("ListBox_log", "NEW / RENAMED - "..File, "");
					end
				end
				
				if(lfs.attributes(File, "modification") > WATCHER_lastmodified)then
					WATCHER_lastmodified = lfs.attributes(File, "modification");
					ListBox.AddItem("ListBox_log", "CHANGED / MODIFICATED - "..File, "");
				end
			elseif(lfs.attributes(File, "mode") == "directory")then
				Watcher(File.."\\");
			end
		end
	end
	--WATCHER_first = (false); TODO: al pasar el codigo a una funcion el false tiene que estar en el timer
end
On Timer
if(e_ID == 1)then
	Watcher(WATCHER_directory);
	WATCHER_first = (false);
end