public IFileInfo GetFileInfo(string subpath) { IFileDirectoryItem result = Directory.GetFile(subpath); if (result == null) { return(new NotFoundFileInfo(subpath)); } return(result.FileInfo); }
/// <summary> /// Watches a specific file in the directory, and raises an event when the file is updated, or deleted. /// </summary> /// <param name="file"></param> private void Register(IFileDirectoryItem file) { // An existing file can be watched for deltion or modification (updates). // Creation is an event that is raised at the folder level for new child item. _watchingFolders.AddOrUpdate(file.Path, (key) => { // folder.ItemAdded += Folder_ItemAdded; file.Deleted += Item_Deleted; // the file was deleted. file.Updated += Item_Updated; // the file was updated. return(file); }, (key, item) => item); }
private bool Unregister(IFileDirectoryItem file) { IDirectoryItem removed; if (_watchingFolders.TryRemove(file.Path, out removed)) { removed.Deleted -= Item_Deleted; removed.Updated -= Item_Updated; return(true); } return(false); }