On 7/3/07, Joe Yoder <[EMAIL PROTECTED]> wrote:
>
> That is what I would do if my program was the only one writing to the
> directory. There are potentially other programs creating files there as
> well. I'm guessing the others would probably use the API approach so it
> would make sense to do that but I don't have the time available to learn
> how to do it that way. - Joe
It's amazing how much time you've spent not learning how to use the
API calls, just in posting messages here.
It's a four-line function you add to your application, plus a bit of
error-trapping and call it with:
lcMyNewTempFileName = GTFN()
Here's my original program that does something a bit different from
what you're trying to do. See if you can adapt it for your needs.
Don't hesitate to ask questions.
********************************************************************
* Program....: GTFN.PRG
* Version....: 1.0
* Author.....: Ted Roche
* Date.......: October 11, 1999
* Notice.....: Copyright (c) 1999 Ted Roche
* Compiler...: Visual FoxPro 06.00.8492.00 for Windows
* Abstract...: Wrapper for GetTempFileName() API call
* Parameters.: None
* Returns....: Ted001.tmp, tedoo2.tmp
* Changes....: Should be parameterized to accept the three-letter
* .0.........: prefix, return error codes?
********************************************************************
LPARAMETERS tcPathName
DECLARE INTEGER GetTempPath IN WIN32API ;
INTEGER BufferLength, ;
STRING Buffer
DECLARE INTEGER GetTempFileName IN WIN32API ;
STRING Pathname, ;
STRING Prefix, ;
INTEGER nUnique, ;
STRING TempFileName
local lcPath, lnPath, lnReturn, lcFileName
lnPath = 254
STORE REPL(CHR(0), lnPath) to lcPath, lcFileName
IF TYPE("tcPathName") <> "C" OR ;
NOT(DIRECTORY(tcPathName)) && parameter omitted or invalid
* Create the path from the WinAPI call
IF GetTempPath(lnPath, @lcPath) = 0
RETURN "" && couldn't create path; bail
ENDIF
ELSE
* It's valid, assign the passed parameter
lcPath = tcPathname
ENDIF
IF GetTempFileName(lcPath, ; && path
"Ted" , ; && Prefix
0 , ; && Actually create the file
@lcFileName) ;
= 0 && function failed
RETURN ""
ELSE
lcFileName = LEFT(lcFileName, AT(CHR(0),lcFileName)-1 )
ENDIF
RETURN lcFileName
"Any society that would give up a little liberty to gain a little
security will deserve neither and lose both" -- Benjamin Franklin
--
Ted Roche
Ted Roche & Associates, LLC
http://www.tedroche.com
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/profox
OT-free version of this list: http://leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: http://leafe.com/archives/byMID/profox/[EMAIL PROTECTED]
** All postings, unless explicitly stated otherwise, are the opinions of the
author, and do not constitute legal or medical advice. This statement is added
to the messages for those lawyers who are too stupid to see the obvious.