Alpha Video Training
Results 1 to 12 of 12

Thread: file.exists() problem

  1. #1
    Member
    Real Name
    Tony Rutherford
    Join Date
    Apr 2000
    Location
    Darwen, England
    Posts
    147

    Default file.exists() problem

    File.exists() does not seem to work properly in A5V4.03 build 230. In one of my scripts, I have two variables called current_path and bitmap_file. They contain the name of the current folder (including the drive letter and the final backslash) and a bitmap file which exists in the folder.

    My script includes the following statement:

    result = file.exists(current_path + bitmap_file)

    This evaluates correctly when the length of current_path is less than 29, but always returns .F. when the current path contains 29 or more characters.

    If I explicitly name the file e.g. result = file.exists("c:worka5v4clientsurcadministrationblank.bmp")

    the result evaluates correctly.

    Does anyone know why this happens?

    Thanks,
    Tony

  2. #2
    nick marodis
    Guest

    Default RE: file.exists() problem

    I think that using :A5.get_path()+"filename") would work better than current_path. I think that your problem is one of having the correct path.

    Nick

  3. #3
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Tony, I wonder if this is a backslash issue? Does your variable include the trailing backslash (which is needed as a separator between the path and the filename)? It is possible you're putting it in when you use the explicit constant, and leaving it out by accident when you concatenate the variable and the filename.

    Backslashes are tricky, because they are the A5 line continuation character, so you might need to actually build the string like this:

    var->current_path + chr(92) + bitmapfilename

    -- tom

  4. #4
    Member
    Real Name
    Tony Rutherford
    Join Date
    Apr 2000
    Location
    Darwen, England
    Posts
    147

    Default RE: file.exists() problem

    Tom & Nick

    Thanks for your replies. I use a5.get_path to get the value of current_path. My script includes backslashes in the right places - I have stepped through the script using the debugger and watched the values of the variables, and they are all OK.

    The script works perfectly when the total length of the path is up to 28 characters, but gives an incorrect FALSE result when the path is longer than 28 characters.

    Tony

  5. #5
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Tony, using vers 4.03 (build 230) I cannot replicate the problem you are seeing.

    Here's what I see in the Interactive Editor:

    currpath = "C:A5v4AdvancedDataEntryEnhancedJimUrbanski"
    filename = "Mainmenu.dbf"
    resultstring = if(file.exists(currpath+filename),"Found it","Cannot see it")

    ?currpath
    = "C:A5v4AdvancedDataEntryEnhancedJimUrbanski"
    ?len(currpath)
    = 45.000000


    ?filename
    = "Mainmenu.dbf"
    ? len(filename)
    = 13.000000

    ? len(currpath+filename)
    = 58.000000


    ?resultstring
    = "Found it"


    In my setup the file MainMenu.dbf is actually present in the specified folder, and the function file.exists() found it.

    The length of the path to the file exceeds the 28 character limit you are seeing.

    Am I missing the point?

    -- tom

  6. #6
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Darn. I forgot that this board eats the backslash characters, let me try again.

    Here's what I see in the interactive editor, with pipes substituted for the backlashes I actually used:

    currpath = "C:|A5v4|AdvancedDataEntry|EnhancedJimUrbanski"
    filename = "|Mainmenu.dbf"
    resultstring = if(file.exists(currpath+filename),"Found it","Cannot see it")

    ?currpath
    = "C:|A5v4|AdvancedDataEntry|EnhancedJimUrbanski"
    ?len(currpath)
    = 45.000000


    ?filename
    = "|Mainmenu.dbf"
    ? len(filename)
    = 13.000000

    ? len(currpath+filename)
    = 58.000000


    ?resultstring
    = "Found it"

  7. #7
    Member
    Real Name
    Tony Rutherford
    Join Date
    Apr 2000
    Location
    Darwen, England
    Posts
    147

    Default RE: file.exists() problem

    Tom,

    It works OK for me in the interactive window or in a script when the file is named explicitly in the file.exists statement, e.g. result = file.exists("c:/aaaaaaaa/bbbbbbbb/cccccccc/filename.dbf")

    It always gives result = .F. when the script holds the path/file name in variables and the path is >28 characters. This applies both in a script and in the interactive window, e.g.

    bs = chr(92)
    current_path = :a5.get_path() + bs
    filename = "filename.dbf"
    result = file.exists(current_path + filename)

  8. #8
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Tony, that's odd.

    As you can see from my example, I used variables in the interactive window to hold the path and filename. The length of the path variable is greater than 28.

    Can you post a working example that illustrates the problem?

    -- tom

  9. #9
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Tony, maybe there's something goofy in your script?

    Here's an example that seems to work just fine with long path and filename strings.

    Unzip the attachment to a separate folder.
    Do not mix it with your development work.

    Begin with form "Names1"

    -- tom

  10. #10
    Member
    Real Name
    Tony Rutherford
    Join Date
    Apr 2000
    Location
    Darwen, England
    Posts
    147

    Default RE: file.exists() problem

    Tom,

    Thanks, I will look at it later today

    Tony

  11. #11
    Member
    Real Name
    Tony Rutherford
    Join Date
    Apr 2000
    Location
    Darwen, England
    Posts
    147

    Default RE: file.exists() problem

    Tom,

    I have found the error in my script. The name of the file is stored in a field (field length = 255), so it has trailing spaces. The script works OK if I use:

    result = file.exists(current_path + trim(bitmap_file))

    The original script always worked OK when its application was in its original location, and only failed when I copied it to a new folder with a longer name.

    I have experimented with the form you sent to me, and added the following lines to the "test file.exists" button's script:

    num = val(ui_get_number("Enter number" , "number of spaces" ))
    tfile = tfile + space(num)

    The test gives a correct result when the total number of characters (path + file name + trailing spaces) is less than 260, but evaluates as .F. when the length is >= 260. I assume that this is related to Windows 98's path + file name limit of 255.

    Thank you for all your help with this.

    Tony

  12. #12
    "Certified" Alphaholic
    Real Name
    Tom Cone Jr
    Join Date
    Apr 2000
    Location
    Florida
    Posts
    23,311

    Default RE: file.exists() problem

    Tony,

    Ahhh, the old trailing blank spaces bug-a-boo. I've been bitten by that rascal many, many times myself so I can sympathize. Glad you got it going.

    -- tom

Similar Threads

  1. Bug fixed in 2051 still exists..
    By P Sabourn in forum Alpha Five Version 6
    Replies: 14
    Last Post: 05-16-2005, 06:59 AM
  2. Verify that value exists in table
    By Louis Nickerson in forum Alpha Five Version 5
    Replies: 3
    Last Post: 12-13-2004, 08:34 AM
  3. Value Exists?
    By Louis Nickerson in forum Alpha Five Version 5
    Replies: 3
    Last Post: 12-05-2002, 11:04 AM
  4. FUNCTION File.Exists() does not exist
    By Jesse Sanders in forum Alpha Five Version 4
    Replies: 5
    Last Post: 06-27-2001, 08:17 AM
  5. Test if a directory exists
    By Stephen Williams in forum Alpha Five Version 4
    Replies: 4
    Last Post: 11-24-2000, 04:10 AM

Bookmarks

Posting Permissions

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