officefileapi-devexpress-dot-xtrarichedit-dot-richeditdocumentserverextensions-dot-loaddocumentproperties-x28-devexpress-dot-xtrarichedit-dot-richeditdocumentserver-system-dot-string-x29.md
Using file paths sourced from untrusted input may expose unauthorized files or allow unintended file access. Always validate and normalize all external paths to prevent path manipulation.
Loads metadata (document properties) of a document from the specified file. The document format is determined automatically.
Namespace : DevExpress.XtraRichEdit
Assembly : DevExpress.Docs.v25.2.dll
NuGet Package : DevExpress.Document.Processor
public static ReadOnlyDocumentProperties LoadDocumentProperties(
this RichEditDocumentServer self,
string fileName
)
<ExtensionAttribute>
Public Shared Function LoadDocumentProperties(
self As RichEditDocumentServer,
fileName As String
) As ReadOnlyDocumentProperties
| Name | Type | Description |
|---|---|---|
| self | RichEditDocumentServer |
The current RichEditDocumentServer instance.
| | fileName | String |
A path to the document which metadata should be loaded.
|
| Type | Description |
|---|---|
| ReadOnlyDocumentProperties |
A collection of document properties.
|
Important
The RichEditDocumentServerExtensions class is defined in the DevExpress.Docs.v25.2.dll assembly and DevExpress.Document.Processor NuGet package. Add this assembly or package to your project to use the RichEditDocumentServerExtensions members. You need a license for the DevExpress Office File API Subscription or DevExpress Universal Subscription to use this library in production code.
Use this method to load document properties without loading the document itself. Refer to the following help topic for a list of supported document properties in different formats: How to: Specify Document Properties.
Note
The RichEditDocumentServer loads the document properties of the WordML and RTF files only if the metadata is located before the document body.
The code sample below loads the document properties and sorts files by their modification date:
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using System;
using System.IO;
using System.Diagnostics;
static void Main(string[] args)
{
DirectoryInfo directoryInfo =
new DirectoryInfo(@"C:\Users\Public\Documents\DevExpress Demos 25.2\Components\Data");
FileInfo[] files = directoryInfo.GetFiles("*.docx");
if (directoryInfo.Exists)
{
foreach (FileInfo file in files)
{
SortDocuments(file);
}
Process.Start("explorer.exe", @"C:\Documents");
}
}
static void SortDocuments(FileInfo file)
{
using (RichEditDocumentServer wordProcessor = new RichEditDocumentServer())
{
//Load the metadata from the specified document:
ReadOnlyDocumentProperties docProperties =
wordProcessor.LoadDocumentProperties(File.OpenRead(file.FullName));
DateTime date = docProperties.BuiltIn.Modified;
//Check the year the document was last modified,
//And copy the file to the corresponding folder:
switch (date.Year)
{
case 2017:
string destFolder = "C://Documents//2017";
CreateDirectory(destFolder);
file.CopyTo(Path.Combine(destFolder, file.Name), true);
break;
case 2018:
destFolder = "C://Documents//2018";
CreateDirectory(destFolder);
file.CopyTo(Path.Combine(destFolder, file.Name), true);
break;
case 2019:
destFolder = "C://Documents//2019";
CreateDirectory(destFolder);
file.CopyTo(Path.Combine(destFolder, file.Name), true);
break;
case 2020:
destFolder = "C://Documents//2020";
CreateDirectory(destFolder);
file.CopyTo(Path.Combine(destFolder, file.Name), true);
break;
}
}
}
static void CreateDirectory(string path)
{
if (!Directory.Exists(path))
Directory.CreateDirectory(path);
}
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
Imports System
Imports System.IO
Imports System.Diagnostics
Shared Sub Main(ByVal args() As String)
Dim directoryInfo
As New DirectoryInfo("C:\Users\Public\Documents\DevExpress Demos 25.2\Components\Data")
Dim files() As FileInfo = directoryInfo.GetFiles("*.docx")
If directoryInfo.Exists Then
For Each file As FileInfo In files
SortDocuments(file)
Next file
Process.Start("explorer.exe", "C:\Documents")
End If
End Sub
Shared Sub SortDocuments(ByVal file As FileInfo)
Using wordProcessor As New RichEditDocumentServer()
'Load the metadata from the specified document:
Dim docProperties As ReadOnlyDocumentProperties =
wordProcessor.LoadDocumentProperties(File.OpenRead(file.FullName))
Dim [date] As Date = docProperties.BuiltIn.Modified
Dim destFolder As String
'Check the year the document was last modified,
'And copy the file to the corresponding folder:
Select Case [date].Year
Case 2017
destFolder = "C://Documents//2017"
CreateDirectory(destFolder)
file.CopyTo(Path.Combine(destFolder, file.Name), True)
Case 2018
destFolder = "C://Documents//2018"
CreateDirectory(destFolder)
file.CopyTo(Path.Combine(destFolder, file.Name), True)
Case 2019
destFolder = "C://Documents//2019"
CreateDirectory(destFolder)
file.CopyTo(Path.Combine(destFolder, file.Name), True)
Case 2020
destFolder = "C://Documents//2020"
CreateDirectory(destFolder)
file.CopyTo(Path.Combine(destFolder, file.Name), True)
End Select
End Using
End Sub
Shared Sub CreateDirectory(ByVal path As String)
If Not Directory.Exists(path) Then
Directory.CreateDirectory(path)
End If
End Sub
See Also
RichEditDocumentServerExtensions Class