本文整理汇总了C++中FConfigFile::Write方法的典型用法代码示例。如果您正苦于以下问题:C++ FConfigFile::Write方法的具体用法?C++ FConfigFile::Write怎么用?C++ FConfigFile::Write使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FConfigFile
的用法示例。
在下文中一共展示了FConfigFile::Write方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MigrateEditorUserSettings
void FConfigManifest::MigrateEditorUserSettings()
{
const FString EditorUserSettingsFilename = ProjectSpecificIniPath(TEXT("EditorUserSettings.ini"));
if (!FPaths::FileExists(EditorUserSettingsFilename))
{
return;
}
// Handle upgrading editor user settings to the new path
FConfigFile OldIni;
OldIni.NoSave = true;
OldIni.Read(EditorUserSettingsFilename);
if (OldIni.Num() != 0)
{
// Rename the config section
MigrateConfigSection(OldIni, TEXT("/Script/UnrealEd.EditorUserSettings"), TEXT("/Script/UnrealEd.EditorPerProjectUserSettings"));
const FString EditorPerProjectUserSettingsFilename = ProjectSpecificIniPath(TEXT("EditorPerProjectUserSettings.ini"));
FConfigFile NewIni;
NewIni.Read(EditorPerProjectUserSettingsFilename);
NewIni.AddMissingProperties(OldIni);
if (!NewIni.Write(EditorPerProjectUserSettingsFilename, false))
{
return;
}
}
IFileManager::Get().Move(*(EditorUserSettingsFilename + TEXT(".bak")), *EditorUserSettingsFilename);
}
示例2: CombineConfig
/** Combine 2 config files together, putting the result in a third */
void CombineConfig(const TCHAR* Base, const TCHAR* Other, const TCHAR* Output)
{
FConfigFile Config;
Config.Read(Base);
Config.Combine(Other);
Config.Write(Output, false /*bDoRemoteWrite*/);
}
示例3: EnumerateEngineInstallations
void FDesktopPlatformLinux::EnumerateEngineInstallations(TMap<FString, FString> &OutInstallations)
{
EnumerateLauncherEngineInstallations(OutInstallations);
FString UProjectPath = FString(FPlatformProcess::ApplicationSettingsDir()) / "Unreal.uproject";
FArchive* File = IFileManager::Get().CreateFileWriter(*UProjectPath, FILEWRITE_EvenIfReadOnly);
if (File)
{
File->Close();
delete File;
}
else
{
SDL_ShowSimpleMessageBox(SDL_MESSAGEBOX_ERROR, "Unable to write to Settings Directory", TCHAR_TO_UTF8(*UProjectPath), NULL);
}
FConfigFile ConfigFile;
FString ConfigPath = FString(FPlatformProcess::ApplicationSettingsDir()) / FString(TEXT("UnrealEngine")) / FString(TEXT("Install.ini"));
ConfigFile.Read(ConfigPath);
FConfigSection &Section = ConfigFile.FindOrAdd(TEXT("Installations"));
// @todo: currently we can enumerate only this installation
FString EngineDir = FPaths::EngineDir();
FString EngineId;
const FName* Key = Section.FindKey(EngineDir);
if (Key)
{
EngineId = Key->ToString();
}
else
{
if (!OutInstallations.FindKey(EngineDir))
{
EngineId = FGuid::NewGuid().ToString(EGuidFormats::DigitsWithHyphens);
Section.AddUnique(*EngineId, EngineDir);
ConfigFile.Dirty = true;
}
}
if (!EngineId.IsEmpty() && !OutInstallations.Find(EngineId))
{
OutInstallations.Add(EngineId, EngineDir);
}
ConfigFile.Write(ConfigPath);
IFileManager::Get().Delete(*UProjectPath);
}
示例4: RegisterEngineInstallation
bool FDesktopPlatformLinux::RegisterEngineInstallation(const FString &RootDir, FString &OutIdentifier)
{
bool bRes = false;
if (IsValidRootDirectory(RootDir))
{
FConfigFile ConfigFile;
FString ConfigPath = FString(FPlatformProcess::ApplicationSettingsDir()) / FString(TEXT("UnrealEngine")) / FString(TEXT("Install.ini"));
ConfigFile.Read(ConfigPath);
FConfigSection &Section = ConfigFile.FindOrAdd(TEXT("Installations"));
OutIdentifier = FGuid::NewGuid().ToString(EGuidFormats::DigitsWithHyphens);
Section.AddUnique(*OutIdentifier, RootDir);
ConfigFile.Dirty = true;
ConfigFile.Write(ConfigPath);
}
return bRes;
}
示例5: SetStoredValue
bool FGenericPlatformMisc::SetStoredValue(const FString& InStoreId, const FString& InSectionName, const FString& InKeyName, const FString& InValue)
{
check(!InStoreId.IsEmpty());
check(!InSectionName.IsEmpty());
check(!InKeyName.IsEmpty());
// This assumes that FPlatformProcess::ApplicationSettingsDir() returns a user-specific directory; it doesn't on Windows, but Windows overrides this behavior to use the registry
const FString ConfigPath = FString(FPlatformProcess::ApplicationSettingsDir()) / InStoreId / FString(TEXT("KeyValueStore.ini"));
FConfigFile ConfigFile;
ConfigFile.Read(ConfigPath);
FConfigSection& Section = ConfigFile.FindOrAdd(InSectionName);
FString& KeyValue = Section.FindOrAdd(*InKeyName);
KeyValue = InValue;
ConfigFile.Dirty = true;
return ConfigFile.Write(ConfigPath);
}
示例6: UpgradeFromPreviousVersions
void FConfigManifest::UpgradeFromPreviousVersions()
{
// First off, load the manifest config if it exists
FConfigFile Manifest;
const FString ManifestFilename = ProjectAgnosticIniPath(TEXT("Manifest.ini"));
if (!FPaths::FileExists(ManifestFilename) && IsDirectoryEmpty(*FPaths::GetPath(ManifestFilename)))
{
// Copy files from previous versions of the engine, if possible
MigratePreviousEngineInis();
}
const EConfigManifestVersion LatestVersion = (EConfigManifestVersion)((int32)EConfigManifestVersion::NumOfVersions - 1);
EConfigManifestVersion CurrentVersion = EConfigManifestVersion::Initial;
if (FPaths::FileExists(ManifestFilename))
{
// Load the manifest from the file
Manifest.Read(*ManifestFilename);
int64 Version = 0;
if (Manifest.GetInt64(TEXT("Manifest"), TEXT("Version"), Version) && Version < (int64)EConfigManifestVersion::NumOfVersions)
{
CurrentVersion = (EConfigManifestVersion)Version;
}
}
if (CurrentVersion == LatestVersion)
{
return;
}
CurrentVersion = UpgradeFromVersion(CurrentVersion);
// Set the version in the manifest, and write it out
Manifest.SetInt64(TEXT("Manifest"), TEXT("Version"), (int64)CurrentVersion);
Manifest.Write(ManifestFilename);
}
示例7: UpgradeFromVersion
EConfigManifestVersion FConfigManifest::UpgradeFromVersion(EConfigManifestVersion FromVersion)
{
// Perform upgrades sequentially...
if (FromVersion < EConfigManifestVersion::RenameEditorAgnosticSettings)
{
// First off, rename the Editor game agnostic ini config to EditorSettings
auto Path = ProjectAgnosticIniPath(TEXT("EditorSettings.ini"));
RenameIni(*ProjectAgnosticIniPath(TEXT("EditorGameAgnostic.ini")), *Path);
FConfigFile EditorSettings;
EditorSettings.Read(Path);
MigrateConfigSection(EditorSettings, TEXT("/Script/UnrealEd.EditorGameAgnosticSettings"), TEXT("/Script/UnrealEd.EditorSettings"));
EditorSettings.Write(Path, false /*bDoRemoteWrite*/);
FromVersion = EConfigManifestVersion::RenameEditorAgnosticSettings;
}
if (FromVersion < EConfigManifestVersion::MigrateProjectSpecificInisToAgnostic)
{
if (!FApp::HasGameName())
{
// We can't upgrade game settings if there is no game.
return FromVersion;
}
// The initial versioning made the following changes:
// 1. Move EditorLayout.ini from Game/Saved/Config to Engine/Saved/Config, thus making it project-agnostic
// 2. Move EditorKeyBindings.ini from Game/Saved/Config to Engine/Saved/Config, thus making it project-agnostic
MigrateToAgnosticIni(TEXT("EditorLayout.ini"));
MigrateToAgnosticIni(TEXT("EditorKeyBindings.ini"));
FromVersion = EConfigManifestVersion::MigrateProjectSpecificInisToAgnostic;
}
return FromVersion;
}