Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (vb) [Seleccionar]
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
Cita de: Fitoschido en 22 Julio 2010, 05:18 AM
Código (vb) [Seleccionar]
Shell cmd.exe fsutil file createnew "C:\archivo2GB.dat" 2147483648

No seria asi?

Código (vb) [Seleccionar]
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 (vb) [Seleccionar]


On Error Resume Next
Dim Res         As Long
   Res = Shell("cmd.exe /c fsutil file createnew ""C:\archivo2GB.dat"" 2147483648", vbHide)
   If Res Then
       Call MsgBox("Todo Correcto")
   Else
       Call MsgBox("Error en Comando")
   End If



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 (vb) [Seleccionar]
Option Explicit

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
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function SetFilePointer Lib "kernel32" (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long
Private Declare Function SetEndOfFile Lib "kernel32" (ByVal hFile As Long) As Long

Private Const FILE_BEGIN = 0
Private Const CREATE_NEW = 1
Private Const INVALID_HANDLE_VALUE = -1
Private Const GENERIC_WRITE = &H40000000

Public Sub SetFileSize(ByVal FileName As String, ByVal newSize As Long)
    Dim fileHandle As Long
   
    fileHandle = CreateFile(FileName, GENERIC_WRITE, 0&, ByVal 0&, CREATE_NEW, 0&, 0&)
   
    If fileHandle = INVALID_HANDLE_VALUE Then
        Err.Raise 53
    End If
   
    If SetFilePointer(fileHandle, newSize, 0&, FILE_BEGIN) = -1 Then
        CloseHandle fileHandle
        Err.Raise 5
    End If
   
    If SetEndOfFile(fileHandle) = 0 Then
        CloseHandle fileHandle
        Err.Raise 5
    End If
   
    CloseHandle fileHandle
End Sub


Private Sub Form_Load()
    Call SetFileSize("c:\archivo.dat", &HEAC1361F)
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
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: