/// <summary> /// Identify a file with a single plugin. /// </summary> /// <param name="identifyFile">The plugin to identify with.</param> /// <param name="fileSystem">The file system to retrieve the file from.</param> /// <param name="filePath">The path of the file to identify.</param> /// <param name="streamManager">The stream manager.</param> /// <returns>If hte identification was successful.</returns> private async Task <bool> TryIdentifyFileAsync(IIdentifyFiles identifyFile, IFileSystem fileSystem, UPath filePath, IStreamManager streamManager) { // 1. Identify plugin var identifyContext = new IdentifyContext(streamManager.CreateTemporaryStreamProvider()); var identifyResult = await identifyFile.IdentifyAsync(fileSystem, filePath, identifyContext); // 2. Close all streams opened by the identifying method streamManager.ReleaseAll(); return(identifyResult); }