Newsgroup: it.comp.lang.visual-basic
Titolo: Qual e' la differenza tra CopyFile e CopyFileEx ?

come da oggetto grazie
ciao

La CopyFileEx e' supportata solo in NT dalla verisone 4 in poi.
A differenza della CopyFile, copia anche gli attributi di sicurezza ed eventuali stream nascosti
(sapevi che con NTFS un file di 0K apparenti puo' contenere un sacco di roba ?)
ciao, hal


grazie Hal
no, non so nemmeno cosa  sia NTFS


e' il file system di nt
;-)
hal

...

Anche in fat un file da 0k occupa 32k effettivi :(
D'accordo, per motivi diversi, perņ si puņ ugualmente riempire un disco con
files vuoti.
Ciao


E' vero.
Se penso a tutti quei mscreate.dir che sparpagliano i setup della m$ !
ciao, hal

 Se penso a tutti quei mscreate.dir che sparpagliano i setup della m$ !
servirebbero alla disinstallazione. credo che la logica sia:
una volta eliminati i file che dal log risultano installati, se c'e'
mscreate.dir e non ci sono altri file la dir puo' essere eliminata.
se provi a inst e subito dopo disinst office97 vedi che funziona. se
pero' crei anche solo un .dot in una dir molto bassa, tutte quelle sopra
non possono venire eliminate.
io di solito quando configuro un pc installo tutta la roba ms, poi alla
fine li cerco e li elimino in un colpo solo.
ciao, a.

alla fine li cerco e li elimino in un colpo solo.
usando la shell standard di Windows NT 5:
for /F "usebackq tokens=*" %i in (`dir /s /b /ah mscreate.dir`) do @del /F %i
usando una shell bourne:
for I in `find . mscreate.dir`; do rm -f $I; end;
hmmm... non ci fare caso, sono le 6 del mattino... è normale che mi
metta a straparlare e pensare a certe cose insane...

 apparenti puo' contenere un sacco di roba ?)
quello che su MacIntosh hanno da almeno dieci anni :(
e così LORO hanno sempre avuto programmi installabili spostando il file 
nella cartella delle applicazioni, rinominandolo come diavolo volevano, 
e comodità simili, e noi qui a dannarci, incatenati ai nomi di file. Se 
solo Microsoft avesse avuto il coraggio di abbandonare DOS, sette anni 
fa... :(


azz, questa invece non la sapevo :(

azz, questa invece non la sapevo :(
vedi, è che tutte le meta-informazioni (tipo di file, icona, eccetera) 
su MacIntosh sono sempre state attributi del file, mentre su Windows, 
fermo al file system FAT, dipende tutto dal nome (e dall'estensione) del 
file

file
come dire ... l' uovo di colombo !
roba da farsi venire complessi di inferiorita' verso gli utenti mac !


CopyFile
The CopyFile function copies an existing file to a new file.
BOOL CopyFile(
    LPCTSTR lpExistingFileName, // pointer to name of an existing file
    LPCTSTR lpNewFileName, // pointer to filename to copy to
    BOOL bFailIfExists  // flag for operation if file exists
   );
Parameters
lpExistingFileName
Points to a null-terminated string that specifies the name of an
existing file.
lpNewFileName
Points to a null-terminated string that specifies the name of the new
file.
bFailIfExists
Specifies how this operation is to proceed if a file of the same name as
that specified by lpNewFileName already exists. If this parameter is
TRUE and the new file already exists, the function fails. If this
parameter is FALSE and the new file already exists, the function
overwrites the existing file and succeeds.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information, call GetLastError.
Remarks
Security attributes for the existing file are not copied to the new
file.
File attributes (FILE_ATTRIBUTE_*) for the existing file are copied to
the new file. For example, if an existing file has the
FILE_ATTRIBUTE_READONLY file attribute, a copy created through a call to
CopyFile will also have the FILE_ATTRIBUTE_READONLY file attribute. For
further information on file attributes, see CreateFile.
CopyFileEx
[New - Windows NT]
The CopyFileEx function copies an existing file to a new file. This
function preserves extended attributes, OLE structured storage, NTFS
alternate data streams, and file attributes. Security attributes for the
existing file are not copied to the new file.
BOOL CopyFileEx(
    LPCWSTR lpExistingFileName, // pointer to name of an existing file
    LPCWSTR lpNewFileName, // pointer to filename to copy to
    LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback
function
    LPVOID lpData, // to be passed to the callback function
    LPBOOL pbCancel, // flag that can be used to cancel the operation
    DWORD dwCopyFlags // flags that specify how the file is copied
   );
Parameters
lpExistingFileName
Points to a null-terminated string that specifies the name of an
existing file.
lpNewFileName
Points to a null-terminated string that specifies the name of the new
file.
lpProgressRoutine
Specifies the address of a callback function of type LPPROGRESS_ROUTINE
that is called each time another portion of the file has been copied.
This parameter can be NULL. For more information on the progress
callback function, see CopyProgressRoutine.
lpData
Specifies an argument to be passed to the callback function. This
parameter can be NULL.
pbCancel
Points to a Boolean variable that can be used to cancel the operation.
If this flag is set to TRUE during the copy operation, the operation is
canceled.
dwCopyFlags
Specifies how the file is to be copied. This parameter can be a
combination of the following values:
COPY_FILE_FAIL_IF_EXISTS The copy operation fails immediately if the
target file already exists.
COPY_FILE_RESTARTABLE Progress of the copy is tracked in the target file
in case the copy fails. The failed copy can be restarted at a later time
by specifying the same values for lpExistingFileName and lpNewFileName
as those used in the call that failed.
Return Values
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error
information call GetLastError.
Remarks
For information on file attributes, see CreateFile.

 file
Vero.
Vero però è anche che questo provoca in termini di "spazio" fisico un
notevole spreco.
Se devi portare su floppy un file ".exe" sotto win sposti il file, sotto Mac
sposti una mezza dozzina di appendici varie.
Questo ha i suoi pregi ma anche i suoi difetti. Meglio forse sarebbe
continuare a identificare le proprietà del file dalla sua classe, come fa
Win, ma legare la classe a un attributo + solido dell'estensione.
ciao
ugo