Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

How to get the Max Date Modified in a folder

Is there a way to get the Max Date Modified in a folder.  I have the following folder location:

C:\Users\dyoung\Documents\Qlik\Sense\Apps\F_Gates\backups\

In that folder I have a bunch of back files that look like this:

Name                                                                      Date Modified

backup_F_Gates_160214_0006.dist                          2/14/2016

backup_F_Gates_160212_0008.dist                          5/15/2016

backup_F_Gates_160233_0010.dist                          4/20/2016

backup_F_Gates_160244_0011.dist                          3/13/2016

I would want to only return:

backup_F_Gates_160212_0008.dist                          5/15/2016


Is this possible?


Thanks,

David

6 Replies
Not applicable
Author

Hey there,

You could use filetime() function. So in your case

Load *, filetime() as Time

From backup_F_Gates_*.dist ;

You can give it a whirl.

Thanks

maxgro
MVP
MVP

Tmp:

Load filetime() as FileTime, FileName() as FileName

From backup*.dist ;

Tmp2:

NoConcatenate First 1 LOAD * Resident Tmp Order by FileTime desc;

DROP Table Tmp;

LET vFile = Peek('FileName');

TRACE $(vFile);

shraddha_g
Partner - Master III
Partner - Master III

Try below script:

It might help.

set vPath = 'Connectionname';

for each File in filelist ('ConnectionName\backup_F_Gates_*.dist')

fileTable:

Load '$(File)' as Name,
  num(FileTime('$(File)')) as FileTime
  autogenerate 1;
next File

Modified_Time:

Load max(Filetime) as ModifiedTime

Resident fileTable;

let vMaxTime = num(peek('ModifiedTime',0,'Modified_Time'));


if len(TableNumber('fileTable')) >= 1 then


FinalTMP:

LOAd
SubField(Name,'\',-1)as File,
rowno() as Recno

RESIDENT fileTable
WHERE FileTime > '$(vMaxTime)'+0.001
ORDER BY FileTime desc;

Drop table fileTable;


Let VMxRows = NoOfRows('FinalTMP');

if  $(VMxRows) >0 then

for i=0 to $(VMxRows)-1


let FileRead = peek('File',$(i),'FinalTMP');


Data:
Load *,
FileName() as Filename,
FileTime() as FileTime

From $(vPath)\$(FileRead);


Next

End if

Drop table FinalTMP;

Not applicable
Author

I understand what you are doing but I am getting a "No qualified path for file: message

Thanks,

David

shraddha_g
Partner - Master III
Partner - Master III

Have you created a folder connection for folder containing all you .dist files?

Not applicable
Author

Here is the code I used.  I created a folder connection to Backups. 

set vPath = 'Backups';

for each File in filelist ('Backups\backup_F_Gates_*.dist')

fileTable:

Load '$(File)' as Name,

  num(FileTime('$(File)')) as FileTime

  autogenerate 1;

next File

Modified_Time:

Load max(Filetime) as ModifiedTime

Resident fileTable;

let vMaxTime = num(peek('ModifiedTime',0,'Modified_Time'));

if len(TableNumber('fileTable')) >= 1 then

FinalTMP:

LOAd

SubField(Name,'\',-1)as File,

rowno() as Recno

RESIDENT fileTable

WHERE FileTime > '$(vMaxTime)'+0.001

ORDER BY FileTime desc;

Drop table fileTable;

Let VMxRows = NoOfRows('FinalTMP');

if  $(VMxRows) >0 then

for i=0 to $(VMxRows)-1

let FileRead = peek('File',$(i),'FinalTMP');

Data:

Load *,

FileName() as Filename,

FileTime() as FileTime

From $(vPath)\$(FileRead);

Next

End if

Drop table FinalTMP;