Working with physical files using the API

CMS.IO is a namespace that serves as an interlayer between the business layer of Kentico and storages used for physical files. CMS.IO is used throughout the system instead of the default System.IO library provided by the .NET Framework in order to be compatible with various types of file storages.

CMS.IO is an abstract layer, which accesses file storages by means of a provider built on top of it. CMS.IO defines the classes and their methods and properties, which the provider overrides in order to manipulate files in a storage.

Depending on the storage type that you use for your files, the system utilizes one of the following providers:

  • File system storage – used by default for files stored in the Windows file system. The provider is only a wrapper for the standard System.IO library.
  • Azure storage – used when storing files in the Microsoft Azure Blob storage.
  • Amazon storage – used when storing files in the Amazon S3 storage service.

The following figure demonstrates how CMS.IO allows you to access different types of file storage by building providers:

Kentico accessing different types of file system

This documentation section assumes that you are familiar with the System.IO library and know how to use it to manipulate files and directories in the Windows file system. Learn how to use System.IO.