Tôi muốn biết liệu có thể tìm ra khi một tệp được thêm vào thư mục trong C# hay không. Tôi biết bạn có thể thấy thời gian sáng tạo và nhiều thứ khác trong FileInfo, nhưng nok khi nó được thêm vào.Tìm hiểu xem tệp nào được thêm vào thư mục
Trả lời
Bạn có thể sử dụng System.IO.FileSystemWatcher. Nó cung cấp phương pháp để thực hiện chính xác những gì bạn muốn làm:
FileSystemWatcher watcher = new FileSystemWatcher()
{
Path = stringWithYourPath,
Filter = "*.txt"
};
watcher.Created += new FileSystemEventHandler(OnChanged);
Kiểm tra các lớp FileSystemWatcher - http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
Bạn sẽ tìm thấy một ví dụ hoàn chỉnh về phía dưới cùng của trang.
FileSystemWatcher là một thành phần rất mạnh mẽ, cho phép chúng ta kết nối với các thư mục và xem các thay đổi cụ thể trong họ, như tạo các tệp mới, thêm các thư mục con và đổi tên các tệp hoặc thư mục con. Điều này làm cho nó có thể dễ dàng phát hiện khi một số tập tin hoặc thư mục được tạo, sửa đổi hoặc xóa. Nó là một trong những thành viên của không gian tên System.IO.
Nó có các sự kiện và theyare
- tạo - nâng bất cứ khi nào một thư mục hoặc tập tin được tạo ra.
- Đã xóa - được nâng lên bất cứ khi nào một thư mục hoặc tệp bị xóa.
- Đã đổi tên - được tăng lên bất cứ khi nào tên của thư mục hoặc tệp bị thay đổi.
- Đã thay đổi - được nâng lên bất cứ khi nào thay đổi được thực hiện đối với kích thước, thuộc tính hệ thống, thời gian ghi cuối cùng, thời gian truy cập lần cuối hoặc quyền bảo mật NTFS của một thư mục hoặc tệp.
Đối với "bản chụp" giải pháp có thể sử dụng thư viện này https://github.com/igorcrevar/Directory-Snapshot-Difference-Csharp
- 1. Không thể xem các tệp mới được thêm vào thư mục làm việc git của tôi
- 2. Cách kiểm tra thư mục để kiểm tra xem tệp mới có được thêm vào không?
- 3. Làm cách nào để tìm hiểu xem chi nhánh đã được hợp nhất vào Trunk?
- 4. Cách đưa tệp js.erb vào thư mục xem
- 5. Lỗi truy cập tệp bằng FileSystemWatcher khi nhiều tệp được thêm vào thư mục
- 6. Đặt các tệp js vào thư mục lượt xem
- 7. Làm cách nào để thêm tệp và thư mục vào tệp zip mà không có thư mục gốc?
- 8. Cách thêm tệp vào dự án SSIS Thư mục khác
- 9. Thêm tất cả các tệp trong một thư mục chưa được thêm vào trong lật đổ?
- 10. Cách tìm hiểu quy trình nào có thư mục hoặc tệp bị khóa?
- 11. WiX thêm tệp vào Thành phần Thư mục
- 12. thêm thư mục trống vào tarfile
- 13. Tìm kiếm tệp trong thư mục có nhiều thư mục
- 14. Thêm thư mục vào đường dẫn tomcat
- 15. Thêm thư mục NuGet vào thư mục giải pháp?
- 16. Tìm hiểu xem ActionBar có được xếp chồng
- 17. Thêm thư mục vào PATH trong Ubuntu
- 18. Làm cách nào để tìm hiểu xem Tệp có phải là tệp hoặc thư mục nếu tệp không tồn tại không?
- 19. MySQL: tìm hiểu ngày nào một hàng đã được thêm vào bảng?
- 20. Tệp JAR được xem dưới dạng Thư mục
- 21. Vĩnh viễn thêm thư mục vào PYTHONPATH
- 22. Thêm thư mục vào thùng Amazon s3
- 23. Làm cách nào để tìm hiểu xem tệp đã được tạo trong StorageFolder
- 24. CMake - Tự động thêm tất cả các tệp trong một thư mục vào một mục tiêu?
- 25. Cách thêm đường dẫn tìm kiếm thư viện được chia sẻ vào tệp thực thi?
- 26. Thêm menu ngữ cảnh tùy chỉnh vào thư mục \
- 27. Java: Tìm tệp .txt trong thư mục được chỉ định
- 28. Thêm thư mục vào đường dẫn của Python vĩnh viễn
- 29. thêm thư mục vào sys.path/PYTHONPATH
- 30. Thư viện xem thư mục/tệp trong C/C++
tôi không thực sự biết bất kỳ C#, nhưng nói chung tôi biết rằng thông tin đó không được lưu trữ trong hệ thống tập tin do đó, không nên có sẵn. Tùy chọn duy nhất tôi có thể nghĩ là chụp "ảnh chụp nhanh" của một thư mục, kiểm tra xem tệp nào có trong đó vào lúc đó. Sau đó, bạn quay lại và thực hiện một "ảnh chụp nhanh" khác và so sánh cả hai và xem liệu tệp của bạn đã được thêm vào trong thời gian đó hay chưa. Bạn sẽ phải quyết định khoảng thời gian phù hợp giữa các ảnh chụp nhanh. –
Bạn có muốn tìm hiểu xem tệp đã được thêm vào thư mục một cách hồi tưởng hoặc được thông báo khi nó xảy ra (theo FileSystemWatcher) không? –
Tôi nghĩ rằng tôi sẽ đi cho các "snapshot" giải pháp. Các FileSystemWatcher tôi không thực sự những gì tôi đang tìm kiếm. Cảm ơn bạn! – Mikkel