![]() |
UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
|
#include "Windows/WindowsPlatformFilePrivate.h"#include "Containers/StringView.h"#include "Logging/LogVerbosity.h"#include "Misc/Paths.h"#include "Misc/PathViews.h"Namespaces | |
| namespace | UE |
| namespace | UE::WindowsPlatformFileJournal |
| namespace | UE::WindowsPlatformFileJournal::Private |
Macros | |
| #define | UE_WINDOWS_PLATFORM_FILEJOURNAL_ENABLED WITH_EDITOR |
Variables | |
| constexpr const TCHAR * | UE::WindowsPlatformFileJournal::Private::OnlyAvailableInEditorMessage = TEXT("FileJournal is only available in editor.") |
| #define UE_WINDOWS_PLATFORM_FILEJOURNAL_ENABLED WITH_EDITOR |
The FileJournal API on Windows is implemented using Windows' USN Journal (aka NTFS Journal).
USN stands for update sequence number. The Journal has to be turned on as an fsutil feature on each drive. When it is enabled on a drive, all writes to files on the drive cause the recording of an entry describing the modification into the journal. The journal has a fixed size (specified at creation) and will drop older entries to make room for new ones.
We only enable it on editor because it has not been requested for in-game use and we want to reduce executable size.
Some features of the Journal require structs and enums defined in _WIN32_WINNT_WIN8 or higher. If we are compiling against a lower version of the windows library, we define the structs and enums we need. The API will still work (assuming the machine running our process supports it) because the library just forwards our function call on to the dll on the machine. If the current machine is running Windows7 or lower, we gracefully fail the journal operations.