public void CreateMetadataEmbed(IMetadataConverter metadataConverter, Metadata metadata) { string result; if (metadataConverter.Write(metadata, out result)) { string filePath; if (PathFormatter.IsEnabled) { filePath = PathFormatter.GetConvertedMetadata(metadata, metadataConverter); } else { filePath = string.Format(CultureInfo.InvariantCulture, "{0}{1}/{2}", PathFormatter.GetCacheDirectory(), metadata.Id, metadataConverter.FileName); } try { Directory.CreateDirectory(Path.GetDirectoryName(filePath)); File.WriteAllText(filePath, result); } catch (Exception ex) { Logger.ErrorLineFormat("Failed to write metadata embed: {0}", filePath); Logger.ErrorLineFormat(ex.ToString()); } } }