1 /* 2 * Copyright (C) 2005-2021 Team Kodi (https://kodi.tv) 3 * 4 * SPDX-License-Identifier: GPL-2.0-or-later 5 * See LICENSE.md for more information. 6 */ 7 8 #pragma once 9 10 #include <kodi/Filesystem.h> 11 #include <string> 12 13 namespace iptvsimple 14 { 15 namespace utilities 16 { 17 static const int LZMA_OUT_BUF_MAX = 409600; 18 19 class FileUtils 20 { 21 public: 22 static std::string PathCombine(const std::string& path, const std::string& fileName); 23 static std::string GetUserDataAddonFilePath(const std::string& fileName); 24 static int GetFileContents(const std::string& url, std::string& content); 25 static bool GzipInflate(const std::string& compressedBytes, std::string& uncompressedBytes); 26 static bool XzDecompress(const std::string& compressedBytes, std::string& uncompressedBytes); 27 static int GetCachedFileContents(const std::string& cachedName, const std::string& filePath, 28 std::string& content, const bool useCache = false); 29 static bool FileExists(const std::string& file); 30 static bool DeleteFile(const std::string& file); 31 static bool CopyFile(const std::string& sourceFile, const std::string& targetFile); 32 static bool CopyDirectory(const std::string& sourceDir, const std::string& targetDir, bool recursiveCopy); 33 static std::string GetSystemAddonPath(); 34 static std::string GetResourceDataPath(); 35 36 private: 37 static std::string ReadFileContents(kodi::vfs::CFile& fileHandle); 38 }; 39 } // namespace utilities 40 } // namespace iptvsimple 41