• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Cách xóa File cứng đầu

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 496
Joined: Tue 04/11/2008 8:43 am
Has thanked: 6 times
Been thanked: 8 times

Cách xóa File cứng đầu

Postby dactung93 » Wed 12/05/2010 10:01 pm

Thủ thuật: Xóa File cứng đầu
Tác giả: Sưu tầm
Mô tả: Xóa mọi file cho dù chúng có đang được mở đi chăng nữa


Bạn đang viết phần mềm về một chương trình kiểm tra Virus USB, phần mềm hệ thống,... ? Đã có khi nào bạn gặp phải những File cực kỳ khoai và rất khó để Kill file đó đi cho dù đã làm mọi cách ?

Hehe, điều đó sẽ được giải quyết triệt để với thủ thuật sau. Chỉ cần bạn copy vào 1 Module rồi chạy thôi.

  1. ' Đây chỉ là một ví dụ đơn giản cho chương trình xóa File
  2. ' dành cho người nào đang muốn viết chương trình đến xóa một file nào đó hoàn toàn
  3.  
  4. Global LongCount As Long
  5. Global ShortCount As Integer
  6. Global LongString As String
  7. Global ShortString As String
  8. Global Clean_Level As Integer
  9.  
  10. Function Check_File(filename As String) As Boolean
  11. 'Kiểm tra xem file có tồn tại hay ko
  12. On Error GoTo Ferr
  13. Open filename For Input As #1
  14. Close #1: Check_File = True
  15. Exit Function
  16. Ferr: Check_File = False
  17. End Function
  18. Sub update(txt As String)
  19. Form1.status = Form1.status & txt & vbCrLf
  20. End Sub
  21. Function Remove_File(filename As String)
  22. On Error GoTo Ferr
  23. Kill filename ' Đoạn này ta xóa File một cách đơn giản. Dùng hàm Kill
  24. Exit Function
  25. Ferr: a = MsgBox("Có lỗi sảy ra trong quá trình xóa File.", vbCritical, "Error")
  26. End Function
  27.  
  28. Function Rand_Char() As String
  29. 'Hàm tạo ra một chuỗi ký tự tự động và sẽ được dùng để ghi đè lên file
  30. Randomize: Rand_Char = Chr(Int(200 * Rnd + 1))
  31. End Function
  32. Function Determine_Strings(filename As String)
  33. On Error GoTo Ferr
  34. Dim fCount As String
  35. Dim Remr As String
  36. Dim fSize As Double
  37. Dim LongRand As String: LongRand = ""
  38. Dim ShortRand As String: ShortRand = ""
  39.     fSize = FileLen(filename)
  40.     fCount = fSize / 100
  41.     Remr = Mid$(fCount, InStr(1, fCount, ".") + 1, 3)
  42.     fCount = Mid$(fCount, 1, InStr(1, fCount, ".") - 1)
  43. 'Ghi đè sau khi đã tạo một chuỗi String
  44. For i = 0 To 100
  45.  LongRand = LongRand & Rand_Char
  46. Next i
  47. 'Tạo một chuỗi String dùng cho X ký tự
  48. 'Ghi đè để làm file dừng ko chạy được nữa
  49. For o = 0 To Remr - 1
  50.  ShortRand = ShortRand & Rand_Char
  51. Next o
  52. 'now set up your global statements for later use
  53. ShortString = ShortRand: LongString = LongRand
  54. LongCount = fCount: ShortCount = Remr
  55. Exit Function
  56. 'Hehe, có lỗi nè
  57. Ferr: a = MsgBox("Có lỗi sảy ra.", vbCritical, "Error")
  58. End Function
  59. Function Clean_File(filename As String)
  60. On Error GoTo Ferr
  61. 'Dim filename As String
  62. Dim countr As Double:
  63. Dim c As String * 100
  64. Dim f As String '* ShortCount
  65. fSize = FileLen(filename)
  66.  
  67.  
  68. Call update(filename & " - " & fSize & " bits long")
  69.  
  70. For r = 1 To Clean_Level
  71.  countr = 0
  72. Open filename For Binary As #1
  73. Call update("-Bắt đầu ghi 100 bit string " & LongCount & " lần...")
  74.     Do Until countr = LongCount
  75.         countr = countr + 1
  76.         c = LongString
  77.         Put 1, , c  ' Ghi nhiều lần vào nữa
  78.    DoEvents        
  79.     Loop
  80.     Call update("-Ghi một chuỗi nhỏ " & ShortCount & " bit string...")
  81.       f = ShortString
  82.         Put 1, , f ' Ghi một chuỗi nhỏ vào File
  83.    Close #1
  84.    
  85. Next r
  86.        
  87.     Call update("Đã hoàn thành quá trình xóa File!")
  88.     Call update("Phá hủy :" & fSize & " bits")
  89. Call Remove_File(filename)
  90. Exit Function
  91. Ferr: a = MsgBox("Có lỗi xảy ra, quá trình xóa file không thành công.", vbOKOnly, "Error")
  92. Call update("Có lỗi xảy ra!")
  93. Close #1 ' Đóng file lại rồi làm lại thui
  94. End Function
  95.  
  96.  


Khi dùng, bạn để ý đến Clean_Level
Nếu Clean_Level càng cao thì file sẽ được xóa mạnh hơn
Ví dụ
Đối với File bình thường ( Ví dụ 1 file video chẳng hạn và đang được mở bằng 1 trình duyệt video nào đó ) thì chỉ cần mức 1 cũng có thể xóa file ( để ý đến cái thanh Seek, nó sẽ trôi cực nhanh luôn vì đã bị ghi đè mà nên dữ liệu file hỏng )
Còn đối với loại Virus cứng đầu thì cứ đặt mức 10

Cách dùng cho nút lệnh

[vb]
Private Sub Command1_Click()
If Check_File(SelectedFile) = True Then
Call Determine_Strings(SelectedFile)
Call Clean_File(SelectedFile)
Else
MsgBox "File ko tồn tại"
End If
End Sub
[/vb]

Dùng kèm với CM Dialog để duyệt file



NCT
Posts: 1
Joined: Thu 15/07/2010 10:08 am

Re: Cách xóa File cứng đầu

Postby NCT » Fri 16/07/2010 10:30 am

Bạn có thể chỉ rõ hơn dc kg? Thú thật là mình rất thik VB6 nhưng chỉ mới học sơ sơ thôi. :P . Cái command dialog là gì vậy?, làm sao chèn vao form?
[mod=Nhắc nhở]Không định dạng màu nếu không cần thiết.[/mod]

dactung93
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 496
Joined: Tue 04/11/2008 8:43 am
Has thanked: 6 times
Been thanked: 8 times

Re: Cách xóa File cứng đầu

Postby dactung93 » Fri 16/07/2010 2:34 pm

Command Dialog là cái comdlg.ocx trong system32 đó

User avatar
01632911829
Thành viên chính thức
Thành viên chính thức
Posts: 42
Joined: Sat 11/08/2012 12:50 pm
Location: Bình Thuận
Has thanked: 4 times
Been thanked: 2 times
Contact:

Re: Cách xóa File cứng đầu

Postby 01632911829 » Fri 05/10/2012 2:45 pm

Xóa 1 file với tên vb.exe thì code này dc hk máy yu
Kill App.Path & "\vb.exe"

hmkg
Thành viên năng nổ
Thành viên năng nổ
Posts: 68
Joined: Sun 12/12/2010 5:40 pm
Has thanked: 13 times
Been thanked: 1 time

Re: Cách xóa File cứng đầu

Postby hmkg » Fri 08/03/2013 4:21 pm

Sao nó cứ lỗi không chạy được nhỉ :(( các bác cho e xin demo được không [-O<

hmkg
Thành viên năng nổ
Thành viên năng nổ
Posts: 68
Joined: Sun 12/12/2010 5:40 pm
Has thanked: 13 times
Been thanked: 1 time

Re: Cách xóa File cứng đầu

Postby hmkg » Fri 08/03/2013 4:46 pm

Vừa chạy lên thấy lỗi ở đoạn này
  1. Sub update(txt As String)
  2. Form1.status = Form1.status & txt & vbCrLf
  3. End Sub
  4.  


Mình nhớ không nhầm thì làm gì có câu này: Form1.status
Mình thích code này nhưng chưa hiểu và chưa sử dụng được, xin các bác hướng dẫn.

User avatar
NTN
Thành viên tâm huyết
Thành viên tâm huyết
Posts: 491
Joined: Wed 05/02/2014 3:43 pm
Location: Đồng Tháp,Việt Nam
Has thanked: 20 times
Been thanked: 8 times
Contact:

Re: Cách xóa File cứng đầu

Postby NTN » Sun 09/02/2014 5:52 am

Code: Select all

    Sub update(txt As String)
    Form1.status = Form1.status & txt & vbCrLf
    End Sub
     

Chỗ đó sửa thành vậy mới đúng nè bạn :
  1. Sub update(txt As String)
  2.     Form1.Caption= Form1.Caption &  txt  & vbCrLf
  3.     End Sub
  4.      

Còn ở chỗ command trong ngoặc bạn sửa lại như vậy :
trong ngoặc bạn sửa lại thành đường dẫn file cần xóa ở đây mình dùng file mp4 xem video !^^
[vb]Private Sub Command1_Click()
If Check_File("C:\Users\Welcome\Desktop\1.mp4") = True Then
Call Determine_Strings("C:\Users\Welcome\Desktop\1.mp4")
Call Clean_File("C:\Users\Welcome\Desktop\1.mp4")
Else
MsgBox "File ko t?n t?i"
End If
End Sub

[/vb]
sau khi sửa xong bạn mở file video theo đường dẫn bằng windows media,... ở đây mình thấy mở bằng windows media mới xóa được ^^!
sau đó chạy Form nhấn Command1 nó sẽ hiện "có lỗi sảy ra"
Các bạn nhấn vào Command thêm lần nữa thì nó sẽ hiện "File ko tồn tại"
bạn thử dùng Notepad open file video thử xem trong đó rỗng không có gì tức là file đã được xóa ! còn video vẫn xem được là do windows media đã nạp vào bộ nhớ của nó rồi ^^!
sau đó bạn thử tắt windows media đang xem video trên đường dẫn trên thì file đã được xóa ^^
Cái này theo mình hiểu thì nó xóa file trong ruột nhưng ngoài vỏ còn giữ lại ^^! nó xóa sau ^^!
Mình chỉ biết và hiểu nhiêu đó chỉ các bạn nào không biết và cho các bạn hỉu sơ sơ ^^!
:P


Return to “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Who is online

Users browsing this forum: No registered users and 1 guest