- Dart:Scalable Application Development
- Davy Mitchell Sergey Akopkokhyants Ivo Balbaert
- 264字
- 2021-07-09 18:56:23
Watching the filesystem
It is very convenient to update a web form from any computer. It may also be useful to update it purely from the filesystem so that a standard text editor can be used or we can have the blog post content entirely automated.
The watcher
package provides the functionality needed for this feature. This package is authored by the Dart team and is typically of the Dart philosophy of being a small focused library. The DirectoryWatcher
class takes a path and notifies via events if any files have added, removed, or modified.
The Blog
class constructor configures the path that is going to be watched by the DirectoryWatcher
. Let's take a look at the following screenshot:
DirectoryWatcher _changeMonitor; Blog(this._pathPosts, this._pathImgs) { initBlog(); _changeMonitor = new DirectoryWatcher(this._pathPosts); _changeMonitor.events.listen((watchEvent) => initBlog()); }
The actual details of the change are not important for the blog, so the initBlog
method will be called to reset the entire site.
In the content
folder of this chapter's sample code, there is an unpublished blog post with the 7.txt
filename. Start the main.dart
blog server located in the bin
folder and go to the index.html
page. Open the file manager on your system and locate the 7.txt
file. Move this file into the posts
folder and refresh the web page. A new blog post should appear at the top of the page, as shown in the following screenshot:

Return to the folder and move the 7.txt
file out of the posts folder. Refresh the web browser again and the most recent post on Chicken Facts will have gone.