IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Delphi .NET Discussion :

[D2005] CopyFile


Sujet :

Delphi .NET

  1. #1
    Teb
    Teb est déconnecté
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 21
    Par défaut [D2005] CopyFile
    Bonjour,

    est-ce que la méthode CopyFile est toujours d'actualité sous Delphi 2005 ? Car je ne pas de référence sous l'aide en ligne. Et en plus j'ai l'impression qu e cette méthode ne supporte pas les caractères accentués...

    Est-ce simplement une impression de ma part ? Existe t-il des méthodes équivalentes sous delphi 2005 ?

    Merci!

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.IO.File.Copy(...);

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    CopyFile existe tjr sous .NET, c'est une API Win32.
    Sache qu'utiliser la FCL fait que le code n'est plus portable Delphi Win32/ Delphi .NET.
    Les 2 utilisations sont possibles.

    Pour info :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function CopyFile(lpExistingFileName, lpNewFileName: string; bFailIfExists: BOOL): BOOL;
    ...
    [SuppressUnmanagedCodeSecurity, DllImport(kernel32, CharSet = CharSet.Auto, SetLastError = True, EntryPoint = 'CopyFile')]
    function CopyFile; external;
    étant le pendant de la méthode IO.File.Copy
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      bool r = Win32Native.CopyFile(fullSourceFileName, fullDestFileName, !overwrite);
    code extrait des sources CLI .NET sscli_20021101\sscli\clr\src\bcl\system\io\file.cs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
            /// <include file='doc\File.uex' path='docs/doc[@for="File.InternalCopy"]/*' />
            /// <devdoc>
            ///    Note: This returns the fully qualified name of the destination file.
            /// </devdoc>
            internal static String InternalCopy(String sourceFileName, String destFileName, bool overwrite) {
                if (sourceFileName==null || destFileName==null)
                    throw new ArgumentNullException((sourceFileName==null ? "sourceFileName" : "destFileName"), Environment.GetResourceString("ArgumentNull_FileName"));
                if (sourceFileName.Length==0 || destFileName.Length==0)
                    throw new ArgumentException(Environment.GetResourceString("Argument_EmptyFileName"), (sourceFileName.Length==0 ? "sourceFileName" : "destFileName"));
     
                String fullSourceFileName = Path.GetFullPathInternal(sourceFileName);
                new FileIOPermission(FileIOPermissionAccess.Read, new String[] { fullSourceFileName }, false, false ).Demand();
                String fullDestFileName = Path.GetFullPathInternal(destFileName);
                new FileIOPermission(FileIOPermissionAccess.Write, new String[] { fullDestFileName }, false, false ).Demand();
     
                bool r = Win32Native.CopyFile(fullSourceFileName, fullDestFileName, !overwrite);
                if (!r) {
                    // Save Win32 error because subsequent checks will overwrite this HRESULT.
                    int hr = Marshal.GetLastWin32Error();
     
                    if (hr != Win32Native.ERROR_FILE_EXISTS) {
                        if (!InternalExists(fullSourceFileName))
                            __Error.WinIOError(Win32Native.ERROR_FILE_NOT_FOUND,sourceFileName);
     
                        if (Directory.InternalExists(fullDestFileName))
                            throw new IOException(Environment.GetResourceString("Arg_DirExists"));
                    }
     
                    __Error.WinIOError(hr, destFileName);
                }
     
                return fullDestFileName;
            }

Discussions similaires

  1. état d'avancement d'un CopyFile()
    Par Xam335 dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/09/2005, 11h12
  2. [CR9] [D2005] [ASP.NET WEB App] Création dynamique d'un état
    Par Crystalou dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 09/03/2005, 09h21
  3. [D2005]Erreur avec BdpConnection ?
    Par nelly dans le forum Bases de données
    Réponses: 3
    Dernier message: 14/02/2005, 08h56
  4. [D2005][FK 2.0] Compatibilité Delphi et ce Framework
    Par Mjm dans le forum Delphi .NET
    Réponses: 3
    Dernier message: 30/11/2004, 14h05
  5. CopyFile/RenameFile
    Par DevelOpeR13 dans le forum Langage
    Réponses: 7
    Dernier message: 06/06/2003, 18h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo