como asignar el tamaño a un fichero aunque este sea de 0 kb
Necesito saber como mandar a copiar un archivo y que cuando se cree la copia ya tenga el tamaño del archivo ya asignado aunque este todavía no este totalmente copiado.
|
Mmmhh... Como yo lo veo no hay mucha alternativa...
El sistema va copiando y actualizando a medida que uno escribe, así que si querés que el archivo tenga el tamaño "final" vas a tener que copiar todo. Así lo he visto en otros programas, el archivo mide 15 MB, pero si por ejemplo sólo se bajaron 20 KB, entonces tenés un archivo con un montón de 00 adentro. Es decir que el programa escribió todos eses ceros antes de escribir los datos (o tiene un buffer que se llena con ceros y con los datos y pues, al guardar a disco guarda todo el buffer). No me parece que haya manera de hacer lo que querés sin hacer esto de rellenar con ceros... ¿Qué es exactamente lo que estás haciendo? Por ahí podemos llegar a alguna solución. Saludongos. |
Men, estoy haciendo un copiador, y lo que necesito es saber como reservar el espacio para cada archivo, antes de empezar a copiar.
|
Realmente si se puede, dependiendo del sistema de Archivo. La API de NTFS hace esto. Normalmente esta técnica es utilizada para hacer discos virtuales. Creo que deberías buscar en MSDN al respecto.
|
men donde puedo encontrar informacion de esto.
|
La función chsize del C te permite cambiar el tamaño de un archivo a voluntad.
El siguiente ejemplo crea un archivo y le da un tamaño de 2000 bytes: Código:
#include <io.h> Saludos. |
Con la API de Windows permite realizar la misma operación que chsize reservando tamaño incluso mayor que 4.294.967.295 bytes. En este caso no disponemos de una función directa, así que propongo una como esta:
Código:
BOOL SetFileSize(char* FileName, __int64 Size) Saludos. |
Tio, yo opte por una permuta para delphi, necesito si esta entre tus posibilidades que me traduscas este codigo para delphi
|
Saludos. |
gracias hermano. su ayuda es impresindible.
|
La franja horaria es GMT +2. Ahora son las 11:17:15. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi