Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: CH4ØZ en 22 Julio 2010, 04:57 am



Título: "modificar" el tamaño de un archivo
Publicado por: CH4ØZ en 22 Julio 2010, 04:57 am
bueno de nuevo yo con mis preguntas :p

bueno la pregunta es como puedo con el vb crear o modificar el tamaño de un archivo pero no el original, si no fingir de cierta forma el tamaño del mismo. Digamos hacer que un archivo de 10Mb aparente pesar 500Mb.

bueno si es esto posible me gustaria que alguien me dijera como o alguna pista ya que no logro encontrar nada sobre el tema con mi amigo google :S


Título: Re: "modificar" el tamaño de un archivo
Publicado por: Fitoschido en 22 Julio 2010, 05:18 am
SI se puede

Código
  1. Shell cmd.exe fsutil file createnew "C:\archivo2GB.dat" 2147483648

Eso ejecutara al CMD y hara un archivo vacio que pesa 2 GB!!

Saludos


Título: Re: "modificar" el tamaño de un archivo
Publicado por: raul338 en 22 Julio 2010, 05:23 am
Código
  1. Shell cmd.exe fsutil file createnew "C:\archivo2GB.dat" 2147483648

No seria asi?

Código
  1. Shell "cmd.exe fsutil file createnew ""C:\archivo2GB.dat"" 2147483648"

:P


Título: Re: "modificar" el tamaño de un archivo
Publicado por: BlackZeroX en 22 Julio 2010, 05:38 am
error es asi

Código
  1.  
  2. On Error Resume Next
  3. Dim Res         As Long
  4.    Res = Shell("cmd.exe /c fsutil file createnew ""C:\archivo2GB.dat"" 2147483648", vbHide)
  5.    If Res Then
  6.        Call MsgBox("Todo Correcto")
  7.    Else
  8.        Call MsgBox("Error en Comando")
  9.    End If
  10.  
  11.  

Le he metido un poco de mi ser!¡.

Sangriento Infierno Lunar!¡.


Título: Re: "modificar" el tamaño de un archivo
Publicado por: Fitoschido en 22 Julio 2010, 06:00 am
Cierto, gracias por la ayuda Raul y blackZeroX, lo que pasa es que andaba escribiendo con prisa y se me olvida la sintaxis :P, y me da flojera abrir el VB :xD


Título: Re: "modificar" el tamaño de un archivo
Publicado por: seba123neo en 22 Julio 2010, 06:20 am
aca tenes el equivalente con api's, SetFilePointer...

Código
  1. Option Explicit
  2.  
  3. Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Any, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
  4. Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  5. Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
  6. Private Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long
  7.  
  8. Private Const FILE_BEGIN = 0
  9. Private Const CREATE_NEW = 1
  10. Private Const INVALID_HANDLE_VALUE = -1
  11. Private Const GENERIC_WRITE = &H40000000
  12.  
  13. Public Sub SetFileSize(ByVal FileName As String, ByVal newSize As Long)
  14.    Dim fileHandle As Long
  15.  
  16.    fileHandle = CreateFile(FileName, GENERIC_WRITE, 0&, ByVal 0&, CREATE_NEW, 0&, 0&)
  17.  
  18.    If fileHandle = INVALID_HANDLE_VALUE Then
  19.        Err.Raise 53
  20.    End If
  21.  
  22.    If SetFilePointer(fileHandle, newSize, 0&, FILE_BEGIN) = -1 Then
  23.        CloseHandle fileHandle
  24.        Err.Raise 5
  25.    End If
  26.  
  27.    If SetEndOfFile(fileHandle) = 0 Then
  28.        CloseHandle fileHandle
  29.        Err.Raise 5
  30.    End If
  31.  
  32.    CloseHandle fileHandle
  33. End Sub
  34.  
  35.  
  36. Private Sub Form_Load()
  37.    Call SetFileSize("c:\archivo.dat", &HEAC1361F)
  38. End Sub

cuidado que crea un archivo de 3 gigas.. :xD

saludos.


Título: Re: "modificar" el tamaño de un archivo
Publicado por: CH4ØZ en 22 Julio 2010, 08:33 am
gracias a todos
pero y si yo en vez de querer crear un nuevo archivo, quiero editar uno existente?


Título: Re: "modificar" el tamaño de un archivo
Publicado por: BlackZeroX en 22 Julio 2010, 11:41 am
Seria con las APIS casi como lo qué publico aquí Seba123Neo solo qué en lugar de usar el parámetro Create_New seria con OPEN_EXISTING, esto t lo digo al vuelo sin probar aun nada.


Título: Re: "modificar" el tamaño de un archivo
Publicado por: fary en 22 Julio 2010, 13:17 pm
Pues si lo que quieres es que el programa siga funcionando y pese mas tendras que utilizar Append y le añades todo el peso que quieras y el programa seguira funcionando igual...

salu2!


Título: Re: "modificar" el tamaño de un archivo
Publicado por: Sanlegas en 26 Julio 2010, 00:08 am
Código:
Public Function sAddKBytes(sPath As String, lKb As Integer)
'Autor: Slek
'Objetivo: Añadir Bytes a un Archivo
'Nota, se añaden KiloBytes
'Ej: sAddBytes "C:\Test.exe", 2 '(Añade 2 KiloBytes)
Dim sKbyte As String
Dim i As Integer
Dim FF

FF = FreeFile

sKbyte = String(1024, vbNullChar)

Open sPath For Binary As #FF
For i = 1 To lKb
  Put #FF, LOF(FF) + 1, sKbyte
Next i
Close #FF
End Function

 esa es una forma... hay bastantes para hacerlo  :laugh: