michaelslamet Posted June 12, 2013 Share Posted June 12, 2013 Hi again Is there any ready to use UDF to list files, put them to array and sort them by date? As far as I know, RecFileListToArray by Melba and _FO_FileSearch by AZJIO doesn't provide this feature, please CMIIW. I need to list and sort thousands (or maybe ten of thousand later) files over a 10/100 LAN network using SMB protocol, so I prefer use a ready to use and optimized UDF rather than build by my low level and buggy programming skill Thanks! Link to comment Share on other sites More sharing options...
FireFox Posted June 12, 2013 Share Posted June 12, 2013 Hi,You can edit the existing UDFs to added an index in the array which will contain the file date, then sort the array according to this date with the _ArraySort function.Br, FireFox. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 12, 2013 Moderators Share Posted June 12, 2013 michaelslamet,As far as I know you will need to use one of the recursive file search UDFs (obviously I recommend mine ) to get an array of the files, create a 2D array of the correct size,then loop through the original array adding the filename and the result of a FileGetTime call for it to the new array, and finally sort the new array on the DTG column. Not difficult to do at all - give it a go and see how you get on. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 Firefox and Melba, you guys are super fast! Ok then I'm going to see how it can be done using RecFileListToArray or _FO_FileSearch UDF. Melba, no hurt feeling if I'm using _FO_FileSearch, ok? Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 btw, to sort the array, is there any method faster than _ArraySort worth to try? Link to comment Share on other sites More sharing options...
FireFox Posted June 12, 2013 Share Posted June 12, 2013 You will have to search over the internet to know the faster sorting algorithm for your needs. It remembers me this >topic. Br, FireFox. Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 12, 2013 Moderators Share Posted June 12, 2013 michaelslamet,Not that I know of - it is based on the QuickSort algorithm. You do realise that sorting tens of thousands of files is going to take an age, I suppose? What exactly are you trying to do with this sort because there might well be some short cuts you can take. M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 Honestly, i dont realise it can take that long Now are only thousand of files, but they are growing. I need to know at particular folder which files are new and when they are created, so I think sort them based on date is a good idea. Maybe I need to add a option to let user choose to sort files between dates. Any good idea? Link to comment Share on other sites More sharing options...
Zedna Posted June 12, 2013 Share Posted June 12, 2013 (edited) I need to exactly this too in one of my projects which I'm working on now. So if you will wait some days/weeks I will post here ready-made UDF. EDIT: I don't need recursivity, so maybe my solution will not fit your needs Edited June 12, 2013 by Zedna Resources UDF ResourcesEx UDF AutoIt Forum Search Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted June 12, 2013 Moderators Share Posted June 12, 2013 michaelslamet, I need to know at particular folder which files are new and when they are createdSo why do you want to list all the files in one go? I would use a recursive filesearcher to get a folder tree (there is one I know of that can do that very easily ) and then go through that list one folder at a time to get a list of the files within each - that way you are only dealing with a reasonable number of files at any one time. When you look at the DTG of these files, it would be very useful if you had a "bottom limit" date - then you could ignore any files created before that date which would further reduce the number you have to sort. Does any of that sound reasonable? M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 Zedna, yes, I will wait for your UDF, please post here when they're ready. Thanks Melba, yes, thats very reasonable, thanks for the idea! What if this? 1. list all of the files start from folder I need to sort to array1 2. update the array1 with 2D array to store each file's date together with complete path+filename 3. Store some files that match date criteria (between date ... until date ...) to array2 4. Sort that array2 5. If doesn't have date criteria then sort array1 Is that reasonable? Link to comment Share on other sites More sharing options...
Spiff59 Posted June 12, 2013 Share Posted June 12, 2013 I need to know at particular folder which files are ... Are you just retrieving from a single folder? #include <Array.au3> ; for testing Global $sDirectory = @WindowsDir, $sStdOut $PID = Run(@ComSpec & ' /c DIR "' & $sDirectory & '" /B /A-D /O-D', "", @SW_HIDE, 2) ; /O-D = newest first, 2 = $STDOUT_CHILD While Not @error $sStdOut &= StdoutRead($PID) WEnd $aStdOut = StringSplit(StringStripWS($sStdOut, 7), @CRLF) _ArrayDisplay($aStdOut) ; for testing You can remove the /B parameter and you'll get dates and file sizes in addition to filemnames. Adding /S will search folders recursively, but the sort is not executed on the entire list, but at the folder level. Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 Spiff, I need to search folder recursively Thanks for providing the way for a single folder! Zedna, ok thanks for the updated information. Why dont you create one that support recursive folder? I will help others too Link to comment Share on other sites More sharing options...
JohnQSmith Posted June 12, 2013 Share Posted June 12, 2013 http://stahlworks.com/dev/swiss-file-knife.html sfk list -flattime . +sort Whenever someone says "pls" because it's shorter than "please", I say "no" because it's shorter than "yes". Link to comment Share on other sites More sharing options...
AZJIO Posted June 12, 2013 Share Posted June 12, 2013 You can work out in the sorting now. >Create list of files (_ArraySort is used) My other projects or all Link to comment Share on other sites More sharing options...
michaelslamet Posted June 12, 2013 Author Share Posted June 12, 2013 JohnQSmith, thanks for the sfk info, I've tried it, seems great! Do you know how to tell sfk to sort date descending? I cant find documentation about this elsewhere AZJIO, I have left message in your Create list of files thread Link to comment Share on other sites More sharing options...
BrewManNH Posted June 13, 2013 Share Posted June 13, 2013 JohnQSmith, thanks for the sfk info, I've tried it, seems great! Do you know how to tell sfk to sort date descending? I cant find documentation about this elsewhere http://stahlworks.com/dev/index.php?tool=list If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
michaelslamet Posted June 13, 2013 Author Share Posted June 13, 2013 BrewManNH, I've visited that url before I post question about sort the date in descending. The page is complete enough but seems I cant find about sorting the date descending anywhere on the page Link to comment Share on other sites More sharing options...
DW1 Posted June 13, 2013 Share Posted June 13, 2013 -late[=n] sort by time, list latest [n] files last -old[=n] sort by time, list oldest [n] files last AutoIt3 Online Help Link to comment Share on other sites More sharing options...
michaelslamet Posted June 13, 2013 Author Share Posted June 13, 2013 Danwilli, Not that one, Tried that one before Those options are to put latest (or oldest) on the filelist, not to let it sorted descending Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now