СообЧа > База Знаний > Программирование > Visual Basic > Файлы и папки

Вопрос

Можно ли удалить файл так что бы его нельяя было востановить даже unerase или undelete.

Ответ

'Вот как удалить файл без возможности восстановления

Option Explicit

Private Declare Function lcreat Lib "kernel32" Alias "_lcreat" (ByVal lpPathName As String, ByVal iAttribute As Long) As Long
Private Declare Function lopen Lib "kernel32" Alias "_lopen" (ByVal lpPathName As String, ByVal iReadWrite As Long) As Long
Private Declare Function lclose Lib "kernel32" Alias "_lclose" (ByVal hFile As Long) As Long
Private Declare Function lwrite Lib "kernel32" Alias "_lwrite" (ByVal hFile As Long, ByVal lpBuffer As String, ByVal wBytes As Long) As Long
Private Declare Function lread Lib "kernel32" Alias "_lread" (ByVal hFile As Long, lpBuffer As Any, ByVal wBytes As Long) As Long
Private Declare Function llseek Lib "kernel32" Alias "_llseek" (ByVal hFile As Long, ByVal lOffset As Long, ByVal iOrigin As Long) As Long

Private Sub Form_Load()

Const BlockSize = 98304
Dim S As String
Dim F As String
Dim F1 As String
Dim F2 As String
Dim i As Long
Dim i1 As Long
Dim i2 As Long
Dim N As Integer
Dim CurSize As Long
Dim FAttr As Integer

F = "C:\1.txt" 'ИМЯ ФАЙЛА
CurSize = FileLen(F)
i1 = CurSize \ BlockSize
i2 = CurSize — i1 * BlockSize
FAttr = GetAttr(F)
SetAttr F, vbNormal
N = lopen(F, 2)
For i = 1 To i1 + 1
 DoEvents
 If i = i1 + 1 Then
   lwrite N, S, i2
 Else
   lwrite N, S, BlockSize
 End If
Next
lclose N
N = lopen(F, 2)
lwrite N, "", 0
lclose N
SetAttr F, FAttr
Kill F
End Sub

Rutshtein Alex



Copyright © 2000-2004 Сообщество Чайников
Контактная информация