Alpha DevCon 2018
Results 1 to 5 of 5

Thread: Retrieve file name, path, size, create/modify date

  1. #1
    Member J.R. Noe's Avatar
    Real Name
    J.R. Noe
    Join Date
    Feb 2011
    Location
    Brandenburg, KY.
    Posts
    398

    Default Retrieve file name, path, size, create/modify date

    Stan Matthews gets full credit for this and it is exactly what i needed, and tried for quite a while without success.
    I am sure i am not the only one needing this so i wanted to post it here for others.

    This script retrieves, from a directory, file names, extension, size, path, create date and modify date and puts the data into a table named 'documents'. The Parse_Name field has just the file name and no extension.

    The table structure is:
    File_Name
    File_Path
    File_Size
    File_Create
    File_Modify

    also have these calculated fields
    File_Ext - calculated with this: FILE.FILENAME_PARSE(FILE_NAME,"E")

    Parse_Name - calculated with this: FILE.FILENAME_PARSE(FILE_NAME,"N")


    You can replace the * in this line to a specific extension if preferred.
    ie: * to jpg for only jpg images.
    list = filefind.get_recurse(directory,"*.jpg",
    as_is = table.external_record_content_get("documents","alltrim(file_path) +','+ alltrim(file_name) +','+ alltrim(file_Size) +','+ alltrim(file_create) +','+ alltrim(file_modify)")
    dim directory as C
    directory="C:\Users\Owner\Desktop\Images"+ chr(92)
    list = filefind.get_recurse(directory,"*.*",
    FILE_FIND_NOT_DIRECTORY,"P,N,L,C,T")
    not_found = word_subtract(list,as_is,crlf())
    t=table.open("documents",FILE_RW_EXCLUSIVE)
    t.populate_from_string("File_Path,File_Name,File_Size,File_Create,File_Modify",crlf(),not_found)
    t.close()
    J.R.
    Epigate Software, LLC.

    jr@epigate.com
    http://www.epigate.com

  2. #2
    Member
    Real Name
    Emile van der Merwe
    Join Date
    Jun 2003
    Location
    New Zealand....sort of
    Posts
    15

    Default Re: Retrieve file name, path, size, create/modify date

    Thanks for the smart code Stan.
    I was about to ask for some help but then had another go at it. I have tweaked your code to work for my application. I thought to post it here if someone else might want to try it and/or tell me if I've done something wrong or could do it better. I will need to work out the reverse now. What if I want to delete all the files from a folder?

    I needed a code where the user can add many files into a folder that are related to a parent field. Then import only the files in the child table that does not exist already.

    dim shared vid as N
    'Filter record_content_get to show only child records
    as_is = table.external_record_content_get("documents","alltrim(filename)","component_id","component_id = Var->vid")

    dim directory as C
    My component files are kept in a folder that equals component_id. User can now add many documents into this folder.
    'on my component form I've added an "Open Folder" button which create a directory and open it or if it already exist open that folder[/COLOR]
    directory=A5.GET_PATH()+ chr(92)+id.value
    list = filefind.get_recurse(directory,"*.*",FILE_FIND_NOT_DIRECTORY,"N")
    not_found = word_subtract(list,as_is,crlf())
    'create 2nd crlf list and add parent_id field and date_added to each line
    not_found2= *for_each(foo,foo+","+var->vid+now(),not_found)
    t=table.open("documents")
    t.populate_from_string("FileName,component_id,date_added",crlf(),not_found2)
    t.close()
    Attached Files Attached Files

  3. #3
    "Certified" Alphaholic Stan Mathews's Avatar
    Real Name
    Stan Mathews
    Join Date
    Apr 2000
    Location
    Bowling Green, KY
    Posts
    24,846

    Default Re: Retrieve file name, path, size, create/modify date

    Quote Originally Posted by esvdm View Post
    What if I want to delete all the files from a folder?]
    list = filefind.get_recurse(directory,"*.*", FILE_FIND_NORMAL+FILE_FIND_NOT_DIRECTORY,"PN")
    for each foo in list
    file.remove(foo.value)
    next
    There can be only one.

  4. #4
    Member
    Real Name
    Michael Cornford
    Join Date
    Oct 2011
    Location
    East Sussex, UK
    Posts
    884

    Default Re: Retrieve file name, path, size, create/modify date

    Just thought I would note you can manually do similar things with

    dir > myfile.txt This will output the current directory to a text file myfile.txt

    This type of output

    Volume in drive C has no label.
    Volume Serial Number is A413-2500

    Directory of C:\Users\Michael

    12/03/2014 14:18 <DIR> .
    12/03/2014 14:18 <DIR> ..
    03/01/2014 11:36 <DIR> .android
    05/07/2012 08:56 <DIR> .gconf
    05/07/2012 09:00 <DIR> .gconfd
    26/05/2012 15:41 <DIR> .gnome2
    26/05/2012 15:41 <DIR> .gnome2_private
    26/05/2012 15:44 <DIR> .gnucash
    20/01/2006 15:15 5,755 0950-3350.jpg
    21/06/2004 15:31 4,227 0950-3988.jpg
    22/06/2010 10:36 4,939 0957-2094.jpg
    14/05/2010 12:00 4,599 0957-2119.jpg
    21/04/2010 09:54 7,431 0957-2146.jpg
    21/04/2010 10:07 6,042 0957-2230.jpg
    11/06/2010 10:31 5,465 0957-2242.jpg


    schtasks /Query /FO CSV /s ServerName /v > d:\schtemp.csv If you run a lot of batch files you can use syntax like this to get a CSV output of the task scheduler.


    Michael

  5. #5
    Member SMARTII's Avatar
    Real Name
    TOM MCCANN
    Join Date
    Jul 2007
    Location
    Grand Prairie TX
    Posts
    197

    Default Re: Retrieve file name, path, size, create/modify date

    Remove Files based on their Date
    All of my Clients scan-to-PDF about 10-30 Documents / work day and upload them to a WebSite.
    After about 30-45 days they are no longer used or needed on the Client's Disk.
    Yet they have to search that directory for the file to upload after each scan.
    1000's of files gets messy
    So, I have wanted to give them any easy way to remove them after a chosen number of days.
    Stan's idea is perfect with some additions:
    cdirectory = "J:\ABAH" ' This will be a VAR for each Client
    list = filefind.get_recurse(cdirectory,"*.pdf", FILE_FIND_NORMAL+FILE_FIND_NOT_DIRECTORY,"TPN")
    IF len(list)<2
    msgbox("","No Files found")
    end
    END IF
    cAge = ui_get_number("Oldest File Date:","Enter Older-Than Age. 0 to Cancel","30")
    nAge = val(cAge)
    IF nAge < 5
    msgbox("Notice:","Cancelled")
    end
    END IF
    nCnt = 0
    FOR each foo in list
    Filedate= Word(foo.value,1,Chr(32),1)
    dFiledate = CtoD(Filedate)
    dRemovedate = date()-nAge
    IF dFiledate <= dRemovedate
    nfileloc = len(foo.value) - len(word(foo.value,1,cdirectory,1))
    filenam = right(foo.value,nfileloc)
    file.remove(filenam)
    nCnt = nCnt + 1
    END IF
    next
    msgbox("Note:",nCnt + " "+"Files were removed")

    Thanks again Stan

Similar Threads

  1. Unable to create-Modify sets
    By John Gamble in forum Alpha Five Version 9 - Desktop Applications
    Replies: 2
    Last Post: 12-22-2008, 05:30 PM
  2. Replies: 10
    Last Post: 06-13-2007, 06:59 AM
  3. create/modify dates
    By dik_coleman in forum Alpha Five Version 5
    Replies: 8
    Last Post: 12-13-2003, 10:41 AM
  4. Create or Modify toolbars
    By Mike Lange in forum Alpha Five Version 5
    Replies: 4
    Last Post: 12-28-2002, 09:06 AM
  5. how to modify date format?
    By Glenn Chandler in forum Alpha Five Version 4
    Replies: 7
    Last Post: 04-11-2002, 05:51 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •