11#include "Misc/Paths.h"
12#include "HAL/PlatformFileManager.h"
13#include "GenericPlatform/GenericPlatformFile.h"
17 UCSVFile* CSVFile = NewObject<UCSVFile>(UCSVFile::StaticClass());
21 CSVFile->
Create(FileNameWithoutExtension, Settings);
33 FString BasePath = Settings.
CustomPath.IsEmpty() ? DataDirectory +
"/CSV/" : Settings.
CustomPath;
34 IPlatformFile& PlatformFile = FPlatformFileManager::Get().GetPlatformFile();
35 if (!PlatformFile.DirectoryExists(*BasePath))
37 PlatformFile.CreateDirectoryTree(*BasePath);
40 FString FullPath = FPaths::Combine(*BasePath, FileNameWithoutExtension + TEXT(
".csv"));
41 UE_LOG(LogTemp, Warning, TEXT(
"FullPath: %s"), *FullPath);
46 while (FPaths::FileExists(FullPath))
48 FullPath = FPaths::Combine(*BasePath, FileNameWithoutExtension + FString::Printf(TEXT(
"_%d.csv"), Counter++));
69 std::ios_base::openmode Mode = std::ios::out;
72 Mode |= std::ios::app;
84 FString Delimiter = TEXT(
",");
87 Delimiter = TEXT(
";");
91 Delimiter = TEXT(
"\t");
95 FString Line = FString::Join(Cells, *Delimiter);
113 CSVStream << TCHAR_TO_UTF8(*Line) << std::endl;
137 ConditionalBeginDestroy();
static FString GetDataFolder()
static UCSVFile * CreateCSVFile(const FString &FileNameWithoutExtension, const FCSVFileSettings &Settings)
void WriteRaw(const FString &Line)
void Create(const FString &FileNameWithoutExtension, const FCSVFileSettings &Settings)
TArray< FString > PendingRows
FCSVFileSettings CurrentSettings
void WriteRow(const TArray< FString > &Cells)
FCSVFileWriteOptions FileWriteOption