|
|
Que tal Byway.
Antes que nada te ofrezco una disculpa por no contestar con anticipación, pero estuve fuera por causas de fuerza mayor. Ojala que aún te sirva mi respuesta.
Programáticamente Visual Basic no puedes proteger muchos archivos contra escritura o borrado, solo algunos de ellos, por ejemplo puedes abrir una base de datos de Access en modo exclusivo y entonces nadie podrá borrar o abrir el archivo al mismo tiempo que tú.
Con otros archivos como por ejemplo .txt, .dat, etc., no puedes hacer lo mismo, por lo una sugerencia sería crear un archivo temporal, por ejemplo a través del API de Windows. A continuación un fragmento de código para crear un archivo temporal en el directorio temporal del sistema operativo:
Private Declare Function GetTempPath Lib "kernel32" _
Alias "GetTempPathA" (ByVal nBufferLength As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function GetTempFileName Lib "kernel32" _
Alias "GetTempFileNameA" (ByVal lpszPath As String, _
ByVal lpPrefixString As String, ByVal wUnique As Long, _
ByVal lpTempFileName As String) As Long
Dim sTmpPath As String * 512
Dim sTmpName As String * 576
Dim nRet As Long
nRet = GetTempPath(512, sTmpPath)
If (nRet > 0 And nRet 0 Then
CreateTempFile = Left$(sTmpName, InStr(sTmpName, vbNullChar) - 1)
End If
End If
Una vez creado el archivo temporal, lee tu archivo original y escribe su contenido en el temporal, trabaja en éste último todo lo que desees y al final sobre escribe el archivo original con el contenido de tu archivo temporal. De esta manera no importará si otra persona abre tu archivo original y cambia su contenido, así como tampoco importará si lo borra.
Espero que esta sugerencia te sea de utilidad y que de ser así, aún estés en tiempo de implementarla.
Saludos.
|