Alyce Alyce Aug 28, 2006 - "Reformatted, changed "as long" to "as boolean when required, corrected some misspellings"

Copying, moving, delecting and renaming files This article contains four sections. a section on copying files, a section on moving files, a section on deleting

- alexbarfoot alexbarfoot

Copying a file

Below the method by which a file can be copied using API calls is shown:
 calldll #kernel132, "CopyFileA",_ 
currentfilename$ as ptr,_ 'the string containing the file to be copied
copyfilename$ as ptr,_ 'the string containing the file name of the copied file
bFailIfExists as long,_ boolean,_ '1or0
re as long 'not boolean'not 0 if copy was successful
The currentfilename$ is the string that contains the name of the file you want to make a copy of. The copyfilename$ is the file name for the copy. The bFailIfExists tells the computer what to do if the file name for the copy is already used. If set to 0 the copy will overwrite the current file with the same name. If set to 1 the copy does not overwrite the file. The code bellow below shows how to copy a file into a different folder with the same file name:
 let currentfilename$= "c:\text.txt" 
let copyfilename$= "c\folder\text.txt"
let bFailIfExists= 0
calldll #kernel132, "CopyFileA",_
currentfilename$ as ptr,_
copyfilename$ as ptr,_
bFailIfExists as long,_ boolean,_ '1or0
re as long boolean
if re=0 then print, "copyfailed"
The code bellow below shows how to make a copy of a file into the same folder with a different file name: filename:

 let currentfilename$= "c:\text.txt" 
let copyfilename$= "c\copyoftext.txt"
let bFailIfExists= 0
calldll #kernel132, "CopyFileA",_
currentfilename$ as ptr,_
copyfilename$ as ptr,_
bFailIfExists as long,_ boolean,_
re as long boolean
if re=0 then print, "copyfailed"

Remember to include the file directories complete path in the filename.

Moving a file

There are two ways to move a file, file; using the name command and using API calls. Bellow
Below the method by which a file can be moved using API calls is shown:
 calldll #kernel132, "MoveFileA",_ 
currentfilename$ as ptr,_ 'the string containing the file to be copied
movefilename$ as ptr,_ 'the string containing the file name of the file in its new location
re as long boolean 'not 0 if move was successful
[[code format="vbnet"]]
The currentfilename$ is the string that contains the name of the file you want to move. The movefilename$ is the file name for new location of the file. re will If the function succeeds, the return value is nonzero. If the function fails, the return value is zero.Points to a null-terminated string that specifies the new name of a file or directory. The new name must not already exist. A new file may be either 0 on a different file system or more. when re is 0 it means that moving the file has failed. drive. The code bellow below shows how to move a file and keep the same file name.
[[code format="vbnet"]]
let currentfilename$= "c:\text.txt"
let movefilename$= "c\folder\text.txt"
calldll #kernel132, "MoveFileA",_
currentfilename$ as ptr,_
movefilename$ as ptr,_
re as long boolean
if re=0 the print, "move failed"

The code bellow below shows how to move a file with a different file name:
 let currentfilename$= "c:\text.txt" 
let movefilename$= "c\folder\textmoved.txt"
calldll #kernel132, "MoveFileA",_
currentfilename$ as ptr,_
movefilename$ as ptr,_
re as long boolean
if re=0 the print, "move failed"

Bellow Below the method by which a file can be moved using the name comand is shown:
 name filename$ as movefilename$ 

what you need to do is You must set the filename$ string to the current name of the file you want to move. Remember to include file directories. the full path. Then you need to set the movefilename$ to the directories path to which you want to move it, plus the filename. movevilename$ can be any valid filename as long as it to plus the file name. doesn't specify a file that already exists.

A working example is shown bellow: below:
 let currentfilename$= "c:\text.txt" 
let movefilename$= "c\folder\text.txt"
name filename$ as movefilename$

Deleting a file

Files can be deleted using the kill command. The kill comand does not place the fiile file in the recycle bin. The code bellow below shows how the kill command works.
 filedialog "select file a file to delete" 
if filename$="" then wait
kill filename$

Use the code above wisely and don't just delete any odd file because it is hard to get then back.

Renaming a file

You can use the name command to rename a file. This command can also be used to move a file. Look a at See the move section above to learn how that works. The code bellow below shows how to rename a file:
 filedialog "select file a file to rename" 
if filename$="" then wait
prompt "enter a new file name"; newfilename$
name filename$ as newfilename$
print "file name "Filename has been changed fro";filename$;"to";newfilename$ from";filename$;"to";newfilename$
Remember to include file extensions such as .txt on the end of the new file name.

Article by Alex Barfoot
alexbarfoot at gmail.com
- alexbarfoot alexbarfoot