PC SOFT

WINDEVWEBDEV AND WINDEV MOBILE
ONLINE HELP

Home | Sign in | English UK
  • Procedure that is using each copied file (syntax 2 only)
  • Values returned by the procedure (Syntax 2)
  • Managing errors
  • Operating mode in Windows Vista (and later)
  • Creating directories during the copy
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Others
Stored procedures
Copies one or more files (regardless of their attributes).
Reports and Queries
// Copy "File.doc" to "FileCopy.doc"
Res = fCopyFile("C:\Directories\File.doc", "D:\Documents\FileCopy.doc")
Reports and Queries
// Copy the files found in the "C:\MyImages" directory
// The sub-directories and their files are taken into account (frRecursive constant)
ResCopy = fCopyFile("C:\MyImages\*.*", "D:\MyFiles\", frRecursive)
Syntax

Copying a a file or a directory Hide the details

<Result> = fCopyFile(<Source file> , <Destination file or directory> [, <Copy indicator>])
<Result>: Boolean
  • True if the files have been copied,
  • False otherwise. To find out the error details, use ErrorInfo associated with the errMessage constant.
<Source file>: Character string (with quotes)
File to copy (up to 260 characters). This parameter can correspond to:
  • a file name. This file will be automatically sought in the current directory (returned by fCurrentDir).
  • a file name with its full or relative path. A UNC path can be used.
Special cases according to the platforms:
  • Versions 15 and later
    Windows This parameter can be in Ansi or Unicode format.
    New in version 15
    Windows This parameter can be in Ansi or Unicode format.
    Windows This parameter can be in Ansi or Unicode format.
Management of wildcard characters (*,?): By default, the wildcard characters are allowed in the name of the file.
Special case according to the platforms:
    <Destination file or directory>: Character string (with quotes)
    Destination file and/or directory (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically created in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    • a full or relative path, only for a copy with wildcard characters.
    If this parameter corresponds to a directory name, this name may (or may not) end with "\".
    Special cases according to the platforms:
    • Versions 15 and later
      Windows This parameter can be in Ansi or Unicode format.
      New in version 15
      Windows This parameter can be in Ansi or Unicode format.
      Windows This parameter can be in Ansi or Unicode format.
    <Copy indicator>: Optional constant
    Type of copy to perform:
    frConfirmCopy a file and ask for confirmation before overwriting a file with the same name.
    frProgressA progress window is displayed. If the file is small (a few bytes), the progress bar is not displayed.
    frRecursiveRecursive copy of the files. The sub-directories and their files are taken into account.

    <Copy indicator> is empty by default. None of these options is selected.
    Versions 19 and later
    Reports and Queries

    Copying one or more files by handling each copied file Hide the details

    <Result> = fCopyFile(<Source file> , <Destination file or directory> , <Procedure name> [, <Pointer> [, <Copy indicator>]])
    <Result>: Boolean
    • True if the files have been copied,
    • False otherwise. To find out the error details, use ErrorInfo associated with the errMessage constant.
    <Source file>: Character string (with quotes)
    File to copy (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically sought in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    Wildcard characters (*,?) are allowed in the file name.
    Windows This parameter can be in Ansi or Unicode format.
    <Destination file or directory>: Character string (with quotes)
    Destination file and/or directory (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically created in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    • a full or relative path, only for a copy with wildcard characters.
    If this parameter corresponds to a directory name, this name may (or may not) end with "\".
    Windows This parameter can be in Ansi or Unicode format.
    <Procedure name>: Character string (with or without quotes)
    Name of WLanguage procedure ("callback" procedure) that will be called for each copied file. This procedure is used to handle the current file.
    This procedure has the following format:
    PROCEDURE <Procedure name> (<Path of file to copy>,
    <Path of destination file>, <Change>, <Procedure pointer>)

    The parameters of this procedure are optional.
    There is no need to pass parameters to this procedure. Indeed, these parameters are automatically filled whenever a file is processed.
    <Pointer>: Optional integer
    Pointer passed to <Procedure name>.
    <Copy indicator>: Optional constant
    Type of copy to perform:
    frRecursiveRecursive copy of the files. The sub-directories and their files are taken into account.

    <Copy indicator> is empty by default: the process is not recursive.
    New in version 19
    Reports and Queries

    Copying one or more files by handling each copied file Hide the details

    <Result> = fCopyFile(<Source file> , <Destination file or directory> , <Procedure name> [, <Pointer> [, <Copy indicator>]])
    <Result>: Boolean
    • True if the files have been copied,
    • False otherwise. To find out the error details, use ErrorInfo associated with the errMessage constant.
    <Source file>: Character string (with quotes)
    File to copy (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically sought in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    Wildcard characters (*,?) are allowed in the file name.
    Windows This parameter can be in Ansi or Unicode format.
    <Destination file or directory>: Character string (with quotes)
    Destination file and/or directory (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically created in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    • a full or relative path, only for a copy with wildcard characters.
    If this parameter corresponds to a directory name, this name may (or may not) end with "\".
    Windows This parameter can be in Ansi or Unicode format.
    <Procedure name>: Character string (with or without quotes)
    Name of WLanguage procedure ("callback" procedure) that will be called for each copied file. This procedure is used to handle the current file.
    This procedure has the following format:
    PROCEDURE <Procedure name> (<Path of file to copy>,
    <Path of destination file>, <Change>, <Procedure pointer>)

    The parameters of this procedure are optional.
    There is no need to pass parameters to this procedure. Indeed, these parameters are automatically filled whenever a file is processed.
    <Pointer>: Optional integer
    Pointer passed to <Procedure name>.
    <Copy indicator>: Optional constant
    Type of copy to perform:
    frRecursiveRecursive copy of the files. The sub-directories and their files are taken into account.

    <Copy indicator> is empty by default: the process is not recursive.
    Reports and Queries

    Copying one or more files by handling each copied file Hide the details

    <Result> = fCopyFile(<Source file> , <Destination file or directory> , <Procedure name> [, <Pointer> [, <Copy indicator>]])
    <Result>: Boolean
    • True if the files have been copied,
    • False otherwise. To find out the error details, use ErrorInfo associated with the errMessage constant.
    <Source file>: Character string (with quotes)
    File to copy (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically sought in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    Wildcard characters (*,?) are allowed in the file name.
    Windows This parameter can be in Ansi or Unicode format.
    <Destination file or directory>: Character string (with quotes)
    Destination file and/or directory (up to 260 characters). This parameter can correspond to:
    • a file name. This file will be automatically created in the current directory (returned by fCurrentDir).
    • a file name with its full or relative path. A UNC path can be used.
    • a full or relative path, only for a copy with wildcard characters.
    If this parameter corresponds to a directory name, this name may (or may not) end with "\".
    Windows This parameter can be in Ansi or Unicode format.
    <Procedure name>: Character string (with or without quotes)
    Name of WLanguage procedure ("callback" procedure) that will be called for each copied file. This procedure is used to handle the current file.
    This procedure has the following format:
    PROCEDURE <Procedure name> (<Path of file to copy>,
    <Path of destination file>, <Change>, <Procedure pointer>)

    The parameters of this procedure are optional.
    There is no need to pass parameters to this procedure. Indeed, these parameters are automatically filled whenever a file is processed.
    <Pointer>: Optional integer
    Pointer passed to <Procedure name>.
    <Copy indicator>: Optional constant
    Type of copy to perform:
    frRecursiveRecursive copy of the files. The sub-directories and their files are taken into account.

    <Copy indicator> is empty by default: the process is not recursive.
    Remarks
    Versions 19 and later

    Procedure that is using each copied file (syntax 2 only)

    For each file found, fCopyFile automatically calls the <Procedure name> procedure. This procedure is a local or global procedure.
    To create this procedure:
    1. Create a global procedure (from the code editor: on the "Code" pane, in the "Procedures" group, expand "New" and select "New global procedure").
    2. Fill the procedure declaration as follows:
    PROCEDURE <Procedure name> (<Path of file to copy>, <Path of destination file>,
    [ <Change>, [<Procedure pointer>]])
    • <Path of file to copy> is the path of the file to copy.
    • <Path of destination file> is a character string containing the name of the destination file.
    • <Change> is an optional constant that is set to:
      • flFirstFile when the file is the first file copied into the <Source file> directory.
      • flChangeDir when the file is the first file listed in a subdirectory of <Path of directory to copy> (which means that a change of directory occurred).
      • flFile in all the other cases.
        The different values that can be taken by <Change> are as follows:
        Current file<Change>
        Dir\File 1flFirstFile
        Dir\File nflFile
        Dir\SubDir 1\File 1flChangeDir
        Dir\SubDir 1\File mflFile
        Dir\SubDir 2\File 1flChangeDir
        Dir\SubDir 2\File xflFile
    • <Procedure pointer> is an optional integer whose value is the one passed to the <Pointer> parameter of fCopyFile. If <Pointer> is not specified, <Pointer> is set to 0.
    To retrieve the value of <Procedure pointer>, its value must be assigned to the value of <Pointer> in the procedure with Transfer.
    Remark: The parameters of this procedure are optional: you can for example only specify the path of the file to copy and the path of the destination file.
    New in version 19

    Procedure that is using each copied file (syntax 2 only)

    For each file found, fCopyFile automatically calls the <Procedure name> procedure. This procedure is a local or global procedure.
    To create this procedure:
    1. Create a global procedure (from the code editor: on the "Code" pane, in the "Procedures" group, expand "New" and select "New global procedure").
    2. Fill the procedure declaration as follows:
    PROCEDURE <Procedure name> (<Path of file to copy>, <Path of destination file>,
    [ <Change>, [<Procedure pointer>]])
    • <Path of file to copy> is the path of the file to copy.
    • <Path of destination file> is a character string containing the name of the destination file.
    • <Change> is an optional constant that is set to:
      • flFirstFile when the file is the first file copied into the <Source file> directory.
      • flChangeDir when the file is the first file listed in a subdirectory of <Path of directory to copy> (which means that a change of directory occurred).
      • flFile in all the other cases.
        The different values that can be taken by <Change> are as follows:
        Current file<Change>
        Dir\File 1flFirstFile
        Dir\File nflFile
        Dir\SubDir 1\File 1flChangeDir
        Dir\SubDir 1\File mflFile
        Dir\SubDir 2\File 1flChangeDir
        Dir\SubDir 2\File xflFile
    • <Procedure pointer> is an optional integer whose value is the one passed to the <Pointer> parameter of fCopyFile. If <Pointer> is not specified, <Pointer> is set to 0.
    To retrieve the value of <Procedure pointer>, its value must be assigned to the value of <Pointer> in the procedure with Transfer.
    Remark: The parameters of this procedure are optional: you can for example only specify the path of the file to copy and the path of the destination file.

    Procedure that is using each copied file (syntax 2 only)

    For each file found, fCopyFile automatically calls the <Procedure name> procedure. This procedure is a local or global procedure.
    To create this procedure:
    1. Create a global procedure (from the code editor: on the "Code" pane, in the "Procedures" group, expand "New" and select "New global procedure").
    2. Fill the procedure declaration as follows:
    PROCEDURE <Procedure name> (<Path of file to copy>, <Path of destination file>,
    [ <Change>, [<Procedure pointer>]])
    • <Path of file to copy> is the path of the file to copy.
    • <Path of destination file> is a character string containing the name of the destination file.
    • <Change> is an optional constant that is set to:
      • flFirstFile when the file is the first file copied into the <Source file> directory.
      • flChangeDir when the file is the first file listed in a subdirectory of <Path of directory to copy> (which means that a change of directory occurred).
      • flFile in all the other cases.
        The different values that can be taken by <Change> are as follows:
        Current file<Change>
        Dir\File 1flFirstFile
        Dir\File nflFile
        Dir\SubDir 1\File 1flChangeDir
        Dir\SubDir 1\File mflFile
        Dir\SubDir 2\File 1flChangeDir
        Dir\SubDir 2\File xflFile
    • <Procedure pointer> is an optional integer whose value is the one passed to the <Pointer> parameter of fCopyFile. If <Pointer> is not specified, <Pointer> is set to 0.
    To retrieve the value of <Procedure pointer>, its value must be assigned to the value of <Pointer> in the procedure with Transfer.
    Remark: The parameters of this procedure are optional: you can for example only specify the path of the file to copy and the path of the destination file.
    Versions 19 and later

    Values returned by the procedure (Syntax 2)

    The <Procedure name> procedure must return one of the following values:
    fcStopUsed to stop the copy permanently.
    fcCopyUsed to continue the copy.
    fcIgnoreUsed to ignore the copy of a file.
    A WLanguage error occurs if the procedure does not return one of these values.
    Case 1. Full interruption of copy
    To force the interruption of copy, the <Procedure name> procedure must return the fcStop constant.
    Example: the "CopyProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE CopyProduct(PathSourceFile, PathDestinationFile)
    ...
    // Stop requested?
    Multitask(-1)
    IF KeyPressed(kpEscape) = True THEN
    Info("The copy will be stopped")
    RESULT fcStop
    END
    ...
    RESULT fcCopy
    If the Esc key is pressed, fCopyFile returns the fcStop constant.
    In the other cases (to continue the browse), the <Procedure name> procedure returns the fcCopy constant.
    Case 2. Partial interruption of copy
    In order for the <Procedure name> procedure not to be run for a given file, the <Procedure name> procedure must return the fcIgnore constant.
    Example: The "FindProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE FindProduct(PathSourceFile, PathDestinationFile)
    ...
    // File to ignore
    IF StringEndsWith(PathSourceFile, "WrongFile.XLS") THEN
    RESULT fcIgnore
    END
    ...
    RESULT fcCopy
    To avoid copying the "WrongFile.XLS" file, the procedure returns the fcIgnore constant. The <Procedure name> procedure is automatically called for the next copied file, without copying the current file.
    New in version 19

    Values returned by the procedure (Syntax 2)

    The <Procedure name> procedure must return one of the following values:
    fcStopUsed to stop the copy permanently.
    fcCopyUsed to continue the copy.
    fcIgnoreUsed to ignore the copy of a file.
    A WLanguage error occurs if the procedure does not return one of these values.
    Case 1. Full interruption of copy
    To force the interruption of copy, the <Procedure name> procedure must return the fcStop constant.
    Example: the "CopyProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE CopyProduct(PathSourceFile, PathDestinationFile)
    ...
    // Stop requested?
    Multitask(-1)
    IF KeyPressed(kpEscape) = True THEN
    Info("The copy will be stopped")
    RESULT fcStop
    END
    ...
    RESULT fcCopy
    If the Esc key is pressed, fCopyFile returns the fcStop constant.
    In the other cases (to continue the browse), the <Procedure name> procedure returns the fcCopy constant.
    Case 2. Partial interruption of copy
    In order for the <Procedure name> procedure not to be run for a given file, the <Procedure name> procedure must return the fcIgnore constant.
    Example: The "FindProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE FindProduct(PathSourceFile, PathDestinationFile)
    ...
    // File to ignore
    IF StringEndsWith(PathSourceFile, "WrongFile.XLS") THEN
    RESULT fcIgnore
    END
    ...
    RESULT fcCopy
    To avoid copying the "WrongFile.XLS" file, the procedure returns the fcIgnore constant. The <Procedure name> procedure is automatically called for the next copied file, without copying the current file.

    Values returned by the procedure (Syntax 2)

    The <Procedure name> procedure must return one of the following values:
    fcStopUsed to stop the copy permanently.
    fcCopyUsed to continue the copy.
    fcIgnoreUsed to ignore the copy of a file.
    A WLanguage error occurs if the procedure does not return one of these values.
    Case 1. Full interruption of copy
    To force the interruption of copy, the <Procedure name> procedure must return the fcStop constant.
    Example: the "CopyProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE CopyProduct(PathSourceFile, PathDestinationFile)
    ...
    // Stop requested?
    Multitask(-1)
    IF KeyPressed(kpEscape) = True THEN
    Info("The copy will be stopped")
    RESULT fcStop
    END
    ...
    RESULT fcCopy
    If the Esc key is pressed, fCopyFile returns the fcStop constant.
    In the other cases (to continue the browse), the <Procedure name> procedure returns the fcCopy constant.
    Case 2. Partial interruption of copy
    In order for the <Procedure name> procedure not to be run for a given file, the <Procedure name> procedure must return the fcIgnore constant.
    Example: The "FindProduct" procedure is automatically called by fCopyFile:
    PROCÉDURE FindProduct(PathSourceFile, PathDestinationFile)
    ...
    // File to ignore
    IF StringEndsWith(PathSourceFile, "WrongFile.XLS") THEN
    RESULT fcIgnore
    END
    ...
    RESULT fcCopy
    To avoid copying the "WrongFile.XLS" file, the procedure returns the fcIgnore constant. The <Procedure name> procedure is automatically called for the next copied file, without copying the current file.

    Managing errors

    fCopyFile generates an error in the following cases:
    • the file to copy does not exist,
    • the file to copy is locked,
    • is invalid,
    • <Path of copied file> is an empty string,
    • <Path of file to copy> and <Path of copied file> are identical.
    Reports and Queries

    Operating mode in Windows Vista (and later)

    If this function does not operate properly in Windows Vista (and later), check whether the file or directory used is not in one of the system directories (Windows directory or "Program Files" directory).
    Indeed, in Windows Vista (and later), with the UAC mechanism (User Account Control) enabled, you must have the administrator privileges to handle and/or modify the files or directories in the system directories (Windows directory or "Program Files" directory).
    Programming tip: To handle and/or modify the files or directories without administrator privileges, you should:
    • avoid writing into the Windows directory or into the "Program Files" directory,
    • use the system directory corresponding to the application (returned by SysDir associated with the srCommonAppData constant).

    Creating directories during the copy

    • If one of the directories of the destination path does not exist, it is automatically created.
    • Reports and Queries If the source file corresponds to all the files found in a directory (for example, C:\Temp\*.*), the frRecursive constant must be used to create the sub-directories in the destination (and to copy their content).
    Remark: To copy directories, you also have the ability to use fCopyDir.
    Related Examples:
    Handling text files Unit examples (WINDEV): Handling text files
    [ + ] Handling "text" files with WINDEV:
    - Create a text file
    - Write into a text file
    - Read in a text file
    Handling text files Unit examples (WEBDEV): Handling text files
    [ + ] This example explains how to handle "non HFSQL" files with WEBDEV and it allows you to:
    - Create a text file
    - Write into a text file
    - Read in a text file
    Handling text files Unit examples (WINDEV Mobile): Handling text files
    [ + ] Handling external "text" files:
    - Create a text file
    - Write into a text file
    - Read in a text file
    Component : wd250std.dll
    Minimum version required
    • Version 9
    This page is also available for…
    Comments
    EXEMPLO COPIAR ARQUIVO
    https://youtu.be/qws0RUJ0Eqs

    http://windevdesenvolvimento.blogspot.com.br/2018/05/dicas-1745-privada-windev-arquivos-29.html

    https://groups.google.com/d/forum/amarildowindev

    // EXEMPLO


    // COPIAR ARQUIVO

    // http://doc.windev.com/en-US/?3036004&name=fcopyfile_function

    Resultado is boolean = fCopyFile("C:\amarildo\ipi.txt", EDT_DIRETORIO+"ipi.txt")

    De matos
    29 May 2018
    Copiar Arquivo
    Copiar Arquivo

    Nessa aula vou mostrar como copiar um arquivo
    This lesson will show you how to copy a file
    Cette leçon va vous montrer comment copier un fichier

    n_resultado is int=fCopyFile("D:\amarildo\Copia\copiaarquivo.txt","D:\amarildo\Copia\novoarquivo.txt")


    n_resultado_F est entier=fCopieFichier("D:\amarildo\Copia\copiaarquivo.txt","D:\amarildo\Copia\novoarquivo.txt")

    //Blog com Video e exemplo
    http://windevdesenvolvimento.blogspot.com.br/2016/08/curso-windev-arquivos-008-arquivos.html
    https://www.youtube.com/watch?v=Q05zcTyXV1c
    De matos AMARILDO
    01 Sep. 2016