• 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
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

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

Gửi bàigửi bởi dactung93 » T.Tư 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

  1. Private Sub Command1_Click()
  2. If Check_File(SelectedFile) = True Then
  3. Call Determine_Strings(SelectedFile)
  4. Call Clean_File(SelectedFile)
  5. Else
  6. MsgBox "File ko tồn tại"
  7. End If
  8. End Sub
  9.  


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



NCT
Bài viết: 1
Ngày tham gia: T.Năm 15/07/2010 10:08 am

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

Gửi bàigửi bởi NCT » T.Sáu 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
Bài viết: 496
Ngày tham gia: T.Ba 04/11/2008 8:43 am
Has thanked: 6 time
Been thanked: 8 time

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

Gửi bàigửi bởi dactung93 » T.Sáu 16/07/2010 2:34 pm

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

Hình đại diện của người dùng
01632911829
Thành viên chính thức
Thành viên chính thức
Bài viết: 42
Ngày tham gia: T.Bảy 11/08/2012 12:50 pm
Đến từ: Bình Thuận
Has thanked: 4 time
Been thanked: 2 time
Liên hệ:

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

Gửi bàigửi bởi 01632911829 » T.Sáu 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ổ
Bài viết: 68
Ngày tham gia: CN 12/12/2010 5:40 pm
Has thanked: 13 time
Been thanked: 1 time

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

Gửi bàigửi bởi hmkg » T.Sáu 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ổ
Bài viết: 68
Ngày tham gia: CN 12/12/2010 5:40 pm
Has thanked: 13 time
Been thanked: 1 time

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

Gửi bàigửi bởi hmkg » T.Sáu 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.

Hình đại diện của người dùng
NTN
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 472
Ngày tham gia: T.Tư 05/02/2014 3:43 pm
Đến từ: Cao Lãnh, Đồng Tháp,Việt Nam
Has thanked: 19 time
Been thanked: 7 time
Liên hệ:

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

Gửi bàigửi bởi NTN » CN 09/02/2014 5:52 am

Mã: Chọn hết

    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 !^^
  1. Private Sub Command1_Click()
  2. If Check_File("C:\Users\Welcome\Desktopvb.mp4") = True Then
  3. Call Determine_Strings("C:\Users\Welcome\Desktopvb.mp4")
  4. Call Clean_File("C:\Users\Welcome\Desktopvb.mp4")
  5. Else
  6. MsgBox "File ko t?n t?i"
  7. End If
  8. End Sub
  9.  
  10.  

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


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

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách