Di chuyển 1 file vào thùng rác

Liên hệ QC

ndu96081631

Huyền thoại GPE
Thành viên BQT
Super Moderator
Tham gia
5/6/08
Bài viết
30,703
Được thích
53,952
Chào mọi người!
Xin hỏi các bạn có ai biết code để di chuyển 1 file vào thùng rác không?
Đã tìm trên google, cũng có nhiều code lắm nhưng áp dụng thì không mấy khả quan
Các bạn ai biết xin giúp cho! cảm ơn
 
Chào mọi người!
Xin hỏi các bạn có ai biết code để di chuyển 1 file vào thùng rác không?
Đã tìm trên google, cũng có nhiều code lắm nhưng áp dụng thì không mấy khả quan
Các bạn ai biết xin giúp cho! cảm ơn
Em thường xóa file vào thùng rác ở VB6 theo hướng dẫn của cuốn sách thủ thuật lập trình VB6.0
Trong Excel chưa thử, Thầy Test nhé.
 

File đính kèm

Upvote 0
Em thường xóa file vào thùng rác ở VB6 theo hướng dẫn của cuốn sách thủ thuật lập trình VB6.0
Trong Excel chưa thử, Thầy Test nhé.
Trong VBA thì cũng viết vậy thôi....
Thật ra code này tôi đã tìm được lâu rồi, có điều hơi bực vì xóa bằng code nhưng vẫn nhận được hộp "Comfirm Delete" hỏi "Are you sure... " gì gì đó ---> Lại phải mất công bấm nút Yes thì thôi thà xóa bằng tay cho rồi
Cuối cùng phát hiện thì ra để vượt qua hộp "Confirm Delete", chỉ cần gán .fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION là xong
Ẹc... Ẹc...
---------------------------
Ai lại làm vậy bác? Đáng lẽ đã tìm được thì bác post lên cho các thành viên khác tham khảo chứ nhỉ? Biết đâu lại có ích cho rất nhiều người đấy bác ạ!
Trân trọng!
Tôi thì chẳng thích giấu bất cứ thứ gì mình biết, chẳng qua.. ngại thôi... không biết điều mình biết có cần với người khác hay không
Nếu bạn nói vậy thì tôi gữi code lên
PHP:
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
PHP:
Private Type SHFILEOPSTRUCT
  hwnd As Long
  wFunc As Long
  pFrom As String
  pTo As String
  fFlags As Integer
  fAnyOperationsAborted As Boolean
  hNameMappings As Long
  lpszProgressTitle As String
End Type
PHP:
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10
PHP:
Sub Main()
  Dim SHFileOp As SHFILEOPSTRUCT, fle
  fle = Application.GetOpenFilename()
  If fle <> "False" Then
    With SHFileOp
      .wFunc = FO_DELETE
      .pFrom = fle
      .fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
    End With
    SHFileOperation SHFileOp
  End If
End Sub
- Code trong Module
- Chạy sub Main, duyệt file nào đó mình muốn xóa và Open
- Code sẽ tự cho file vào Recycle Bin mà chẳng hỏi bất cứ điều gì
 
Lần chỉnh sửa cuối:
Upvote 0
Trong VBA thì cũng viết vậy thôi....
Thật ra code này tôi đã tìm được lâu rồi, có điều hơi bực vì xóa bằng code nhưng vẫn nhận được hộp "Comfirm Delete" hỏi "Are you sure... " gì gì đó ---> Lại phải mất công bấm nút Yes thì thôi thà xóa bằng tay cho rồi
Cuối cùng phát hiện thì ra để vượt qua hộp "Confirm Delete", chỉ cần gán .fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION là xong
Ẹc... Ẹc...
Ủa, vậy không dùng câu này được à anh: Application.DisplayAlerta=False
Hay là hộp thoại đó là của Windows nên VBA không can thiệp được?
Hoặc là dùng Sendkeys chẳng hạn.
 
Upvote 0
Ủa, vậy không dùng câu này được à anh: Application.DisplayAlerta=False
Hay là hộp thoại đó là của Windows nên VBA không can thiệp được?
Hoặc là dùng Sendkeys chẳng hạn.
SendKeys là thứ dở ẹc nhất nên... bùn lắm mới dùng
Thật ra API có thể làm được nhiều thứ. Hàm SHFileOperation ở trên mạng có đầy các ví dụ, chẳng qua trình độ mình bèo, chưa biết tùy biến thôi (bật cờ hiệu FOF_NOCONFIRMATION, đồng nghĩa "Miễn xác nhận" là ăn tiền liền)
(Cũng may là mình không bỏ cuộc... mày mò rồi cũng ra)
 
Upvote 0
Xem ra (Excel + ndu).làm được nhiều thứ = True nhỉ.
...................
Có thể nâng cấp code được ko, ví dụ:
- Xóa thư mục
- Xóa file đã đặt thuột tính cấm xóa.
 
Upvote 0
Cho mình hỏi lại chút, có phải Ndu chỉ chuyển file vào thùng rác chứ không muốn xoá hẳn hay là đơn giản là xoá file
Nếu chỉ xóa file thì mình làm như sau cũng được, xóa là chết liền chả hỏi han chi, code đơn giản

Mã:
Sub XoaFile()
Dim item As Long
With Application.FileDialog(msoFileDialogOpen)
.Title = "Chon File de xoa"
.AllowMultiSelect = False
.Show
item = .SelectedItems.Count
If item = 0 Then
Exit Sub
Else
Kill .SelectedItems(item)
End If
End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Cho mình hỏi lại chút, có phải Ndu chỉ chuyển file vào thùng rác chứ không muốn xoá hẳn hay là đơn giản là xoá file
Nếu chỉ xóa file thì mình làm như sau cũng được, xóa là chết liền chả hỏi han chi, code đơn giản
Xóa file thì em biết rồi. Ở đây em muốn di chuyển file vào thùng rác thôi (xóa tạm)
Hơn nữa, thời gian gần đây, khi làm việc với file, folder em toàn dùng Scripting.FileSystemObject vì các hàm có sẳn thường tỏ ra kém hiệu quả
Lấy ví dụ: 1 tên file là tiếng Việt có dấu thì không thể dùng Kill được
---------------------------------------
Xem ra (Excel + ndu).làm được nhiều thứ = True nhỉ.
Có thể nâng cấp code được ko, ví dụ:
- Xóa thư mục
- Xóa file đã đặt thuột tính cấm xóa.
Thật ra code trên có thể xóa cả thư mục đấy anh à. Vấn đề là anh dùng loại Dialog nào? Dialog để duyệt file thì sẽ xóa file, Dialog duyệt thư mục thì sẽ xóa thư mục
Vậy ta sẽ nghĩ: Liệu có loại Dialog nào cho phép vừa duyệt file vừa duyệt cả folder không?
Câu trả lời là: CÓ ---> Các bạn thử tìm hiểu xem
Còn việc Xóa file đã đặt thuột tính cấm xóa thì... quá dễ ---> Đổi thuộc tính cho nó (ngoại trừ các file thuộc hệ thống)
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom