يمكن لنظام التشغيل أن يقول لي عندما يتم إنشاء ملف جديد؟
-
03-07-2019 - |
سؤال
وأريد أن أعرف عندما يتم إنشاء ملف جديد على دليل معين، بدلا من مسح الدليل من وقت لآخر.
وأنا أفهم أن هناك وسيلة لجعل نظام التشغيل اقول برنامجي الذي تم إنشاء ملف جديد. كيف يعمل؟
وكما ذكر، وهذا له أوجه التشابه مع كيفية يتم إخطار من ملف / تغيير الدليل C / C ++، من الناحية المثالية باستخدام POSIX
المحلول
والذي يعتمد على نظام التشغيل.
في ويندوز، فإن API قاعدة أن يكون تغيير الدليل إخطارات .
ومنذ كنت أذكر لينكس في العلامات، وهذا من شأنه أن يكون inotify API .
لإضافة إلى OS X الجواب، اعتبارا من 10.5، تريد FSEvents API .
نصائح أخرى
وتحت لينكس، تحقق من Inotify .
كيف تكون إخطار تغيير ملف / الدليل C / C ++، من الناحية المثالية باستخدام POSIX
وأو البحث عن inotify في ستاكوفيرفلوو ستحصل على الكثير من الأفكار
FAM يوفر واجهة مشاهدة ملف متناسقة عبر كل من Unixes. على لينكس، ويمكن استبدال الخفي الخلفية بواسطة الصبي المتشرد ، ولكن برنامج ربط مع FAM ستعمل مع الصبي المتشرد على ما يرام. (وراء الكواليس، قد يكون FAM باستخدام الاقتراع، والصبي المتشرد قد تستخدم inotify أو dnotify أو kqueue، ولكن يجب أن لا داعي للقلق بشأن تنفيذ).
وOS X.5 ديه FSEvents ، وهي مختلفة جدا من حيث أنه يراقب النظام برمته بدلا من الملفات المحددة والدلائل، ولكن أيضا تلبية الاحتياجات الخاصة بك.
في Windows راجع البحث (الأولى | التالي | انهيار) ChangeNotification أو ReadDirectoryChanges .
وFileSystemWatcher هو الجواب - وأنه يعمل بشكل متكرر
.وهناك مثال هنا (البحث عن FileSystemWatcher)
ومع نظام التشغيل Mac OS X، هذه الوظيفة هي جزء من API الضوء.
ومن MSDN:
<اقتباس فقرة>استخدم FileSystemWatcher لمشاهدة ل التغييرات في الدليل المحدد. أنت يمكن مشاهدة لإجراء تغييرات في الملفات و الدلائل الفرعية المحدد الدليل. يمكنك إنشاء مكون لمشاهدة الملفات على جهاز كمبيوتر، والمحلية محرك أقراص الشبكة، أو جهاز كمبيوتر عن بعد.
اقتباس فقرة>ويوفر API ويندوز مرافق لرصد نظام الملفات - هناك مثال هنا <لأ href = "http://msdn.microsoft.com/en-us/library/aa365261٪28VS.85٪29.aspx" يختلط = "نوفولو noreferrer"> http://msdn.microsoft.com/en-us/library/aa365261٪28VS.85٪29.aspx