Tôi cần phải giải nén vi một số tệp trong ứng dụng của tôi bằng Shell32. Ngay bây giờ, tôi sử dụng srcFolder.CopyHere(destFolder.Items())
để đạt được điều này. Tuy nhiên, dòng mã tiếp theo của tôi yêu cầu tệp ZIP mới được tạo. Nhưng vì phương pháp CopyHere
là Không đồng bộ, làm thế nào tôi có thể kiểm tra khi nó kết thúc? Ngay bây giờ tôi sử dụng một Thread.Sleep
cho khoảng 500 ms đó là đủ cho máy tính của tôi để hoàn thành việc tạo tập tin ZIP, nhưng nó không phải là mã imo tốt.Cách kiểm tra khi nào Shell32.Folder.CopyHere() kết thúc
Bất kỳ ý tưởng nào?
Thông tin thêm/mã có thể được cung cấp nếu cần.
+1 Cố gắng để tìm một cái gì đó, nhưng không tìm thấy bất cứ điều gì. Chỉ cần một lưu ý. Thêm một số biện pháp an toàn để phá vỡ vòng lặp đó nếu bản sao của bạn mất quá nhiều thời gian. (Ví dụ: đường dẫn mạng không khả dụng) – Steve
Giải pháp này hoạt động trên Windows 8 nhưng sẽ phát sinh sớm trên Windows 7. Mọi suy nghĩ? –
Sử dụng Excel VBA, chúng tôi cần 1. Sao chép tệp văn bản thành zip 2. Nhận luồng byte của zip để xử lý tiếp. 3. Xóa các tập tin văn bản và zip. Khi mã cho chúng ta lỗi bất thường và không thường xuyên (luôn liên quan đến đường dẫn tệp/đường dẫn tệp), chúng tôi trích xuất mã 1 và 3 vào một môi trường thử nghiệm khác và đọc lại nhiều lần. Ở đây chúng tôi đã thực hiện giải pháp FileInUse nhưng bằng cách nào đó hàm vẫn giữ nguyên về việc trả về false và các lệnh xóa không thực thi. – sidnc86