How to set directory to store images in C# and .NET
Processing text documents and managing images in .NET applications is an important task often encountered when developing enterprise solutions, content editors, reporting systems, and other applications. This is particularly true when converting RTF documents to HTML while simultaneously managing the placement and storage of images used within these documents.
In this article, we'll detail how to configure an image storage directory in C# and .NET using the component RTF TO HTML .NET from SautinSoft SDK.
This functionality is especially important for applications that need to maintain high-quality, structured HTML sections with embedded images. When converting RTF to HTML, large documents with numerous images can create complications if the images are displayed in random locations or stored in unspecified folders.A properly configured image storage directory provides:
- Organized access: images are easy to find and manage.
- Optimal performance: avoids file duplication and unnecessary operations.
- Easy updating: replace or edit images in a central location.
- Security and backup: easier management of access rights and image storage.
What is this functionality useful for?
- Websites and portals with content editors.
- Automatic generation of HTML documents from RTF report files with illustrations.
- Creating document storage and publishing systems with embedded images.
- Processing large volumes of documents requiring centralized image management.
Additional tips:
- Use unique image names to avoid conflicts.
- Set 'ImagesUrlPrefix' to display images correctly on websites.
- Always check permissions on image storage folders.
- For large data volumes, implement stream processing and progress reports.
Complete code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using SautinSoft;
namespace Example
{
class Program
{
static void Main(string[] args)
{
SetImagesDirectory();
}
/// <summary>
/// How to set directory to store images.
/// </summary>
static void SetImagesDirectory()
{
// Get your free key here:
// https://sautinsoft.com/start-for-free/
// If you need more information about "RTF to HTML .Net"
// Email us at: support@sautinsoft.com.
string inpFile = @"..\..\..\example.docx";
string outFile = Path.GetFullPath(@"Result2.html");
string imgDir = Path.GetDirectoryName(outFile);
RtfToHtml r = new RtfToHtml();
// Set images directory
RtfToHtml.HtmlFixedSaveOptions opt = new RtfToHtml.HtmlFixedSaveOptions()
{
ImagesDirectoryPath = Path.Combine(imgDir, "Result_images"),
ImagesDirectorySrcPath = "Result_images",
// Change to store images as physical files on local drive.
EmbedImages = false
};
try
{
r.Convert(inpFile, outFile, opt);
}
catch (Exception ex)
{
Console.WriteLine($"Conversion failed! {ex.Message}");
}
// Open the result.
System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
}
}
}Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports System.IO
Imports SautinSoft
Namespace Example
Friend Class Program
Shared Sub Main(ByVal args() As String)
SetImagesDirectory()
End Sub
''' <summary>
''' How to set directory to store images.
''' </summary>
Private Shared Sub SetImagesDirectory()
' Get your free key here:
' https://sautinsoft.com/start-for-free/
' If you need more information about "RTF to HTML .Net"
' Email us at: support@sautinsoft.com.
Dim inpFile As String = "..\..\..\example.docx"
Dim outFile As String = Path.GetFullPath("Result.html")
Dim imgDir As String = Path.GetDirectoryName(outFile)
Dim r As New RtfToHtml()
' Set images directory
Dim opt As new RtfToHtml.HtmlFixedSaveOptions() With {
.ImagesDirectoryPath = Path.Combine(imgDir, "Result_images"),
.ImagesDirectorySrcPath = "Result_images",
.EmbedImages = False
}
Try
r.Convert(inpFile, outFile, opt)
Catch ex As Exception
Console.WriteLine($"Conversion failed! {ex.Message}")
End Try
' Open the result.
System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
End Sub
End Class
End Namespace
If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below: