```
touch /tmp/aaa.csv

CREATE TABLE log (A String) ENGINE= FileLog('/tmp/aaa.csv', 'CSV');
DB::Exception: The absolute data path should be inside `user_files_path`(/var/lib/clickhouse/user_files/). (BAD_ARGUMENTS)


CREATE TABLE log (A String) ENGINE= FileLog('/tmp/aaa.csv', 'CSV');
DB::Exception: Metadata files already exist by path: /var/lib/clickhouse/.filelog_storage_metadata/default/log, remove them manually if it is intended. (TABLE_METADATA_ALREADY_EXISTS)
```
{
    if (!std::filesystem::exists(root_meta_path))
    {
        std::filesystem::create_directories(root_meta_path);
    }
    for (const auto & [inode, meta] : file_infos.meta_by_inode)
    {
        auto full_name = getFullMetaPath(meta.file_name);
        if (!std::filesystem::exists(full_name))
        {
            FS::createFile(full_name);
        }
        else
        {
            checkOffsetIsValid(full_name, meta.last_writen_position);
        }
        WriteBufferFromFile out(full_name);
        writeIntText(inode, out);
        writeChar('\n', out);
        writeIntText(meta.last_writen_position, out);
    }
}
void StorageFileLog::serialize(UInt64 inode, const FileMeta & file_meta) const