Công ty tôi đang làm việc có một chương trình được viết trong ye olde vb6, được cập nhật khá thường xuyên và hầu hết khách hàng chạy tệp thực thi từ ổ đĩa mạng được ánh xạ. Điều này thực sự có vài vấn đề đáng ngạc nhiên, lớn nhất trong số đó là cập nhật tự động. Hiện tại chương trình cập nhật (viết bằng C++) đổi tên exe hiện có, sau đó tải xuống và đặt phiên bản mới vào vị trí của phiên bản cũ. Điều này thường hoạt động tốt, nhưng trong một số môi trường nó chỉ đơn giản là thất bại.Đóng các tệp được chia sẻ theo lập trình
Giải pháp đang chạy this command from microsoft:
for /f "skip=4 tokens=1" %a in ('net files') do net files %a /close
Lệnh này đóng tất cả file mạng được chia sẻ (cũng ... nhất) và sau đó cập nhật có thể thay thế exe.
Trong C++ tôi có thể sử dụng chức năng System("");
để chạy lệnh đó hoặc tôi có thể chuyển hướng kết quả của net files
và lặp qua kết quả tìm kiếm tệp cụ thể được đề cập và chạy lệnh net file /close
để đóng chúng. Nhưng nó sẽ đẹp hơn nhiều nếu có các hàm winapi có khả năng tương tự cho độ tin cậy tốt hơn và an toàn trong tương lai.
Có cách nào để tôi lập trình tìm tất cả các tệp được chia sẻ trên mạng và đóng các tệp có liên quan không?
Âm thanh như thế này là câu hỏi C++ của Windows ... – shargors
Có, xin lỗi tôi sẽ thêm thẻ – wizebin
Tôi khuyên bạn nên tìm kiếm MSDN để tìm một số API Windows có thể giúp bạn đóng tệp mạng. –