Saving files to the desktop


Many applications produce output in the form of a disk file. This may be a simple text file listing an audit trail; a Word document as a personalised letter; or an Excel spreadsheet as an alternative to a printed report.

If these files need to be kept for any length of time or if there are many different types of file then they are best kept in a structure of separate folders. If however the files are produced rarely and will be be printed or despatched immediately then the desktop may be the best place to put them.

This sounds like an unstructured way of working but it does have a number of advantages - especially for unskilled or occasional users:
  • The files are obviously 'there' and the user will know that the application has produced the output.
  • The user can't lose the files or forget the path to the folder.
  • Files can't accumulate because the user can see the old files and will be able to delete them

Where is the desktop?

The desktop is nothing more than a folder. It has different names in different versions of Windows and there may be several different copies of it, one for each user. On this machine my desktop is stored as:

c:\Documents and Settings\gfranklin\Desktop

You may be tempted to build this string for yourself but there is no guarantee that the desktop folder will always have a path of this form. A safer method is to ask Windows for the path.

Finding the desktop

Use the Windows Scripting Host(WSH) to get this information. The SpecialFolders method will return the path:

loShell = CreateObject ('WScript.Shell')
lcDesktop = loShell.SpecialFolders('desktop')

Once you have the path you can very easily write your file to this folder with the
STRTOFILE command:

lcFileName = InputBox ('Enter a file name')
StrToFile ('Test', lcDeskTop + '\' + lcFileName)
MessageBox (lcFilename + ' saved to Desktop.')


The MessageBox is just there to reassure the user because the new file may be hidden on the desktop behind the application that's running.

Hints & tips

The textbox class in Visual FoxPro 9 has a new Autocomplete property which shows the user the previous values that have been entered in that textbox.
Autocomplete in VFP 9

Your Access database will look more impressive if you add custom toolbars...
Custom toolbars

FoxPro has always had functions to read and write files at a low level...
Foxpro low level file functions

More...
More pages of hints and tips for users of Microsoft FoxPro and Access databases.

Site Map