Sayonara Player
FileUtils.h
1 /* FileUtils.h */
2 
3 /* Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4  *
5  * This file is part of sayonara player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11 
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16 
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  */
20 
21 #ifndef FileUtils_H
22 #define FileUtils_H
23 
24 #include <QList>
25 #include <utility>
26 #include "typedefs.h"
27 
28 class QStringList;
29 class QString;
30 class QChar;
31 class QByteArray;
32 
33 namespace Util
34 {
39  namespace File
40  {
46  QString cleanFilename(const QString& filename);
47 
48  QByteArray getMD5Sum(const QString& filename);
49 
55  void removeFilesInDirectory(const QString& dirName, const QStringList& filters);
56  void removeFilesInDirectory(const QString& dirName);
57 
62  void deleteFiles(const QStringList& files);
63 
69  QString getParentDirectory(const QString& path);
70 
76  QString getFilenameOfPath(const QString& path);
77 
84  void splitFilename(const QString& src, QString& dir, QString& filename);
85  std::pair<QString, QString> splitFilename(const QString& src);
86 
92  QStringList splitDirectories(const QString& path);
93 
99  QString getFileExtension(const QString& filename);
100 
106  QStringList getParentDirectories(const QStringList& list);
107 
113  QString getAbsoluteFilename(const QString& filename);
114 
119  bool createDirectories(const QString& path);
120 
127  bool createSymlink(const QString& source, const QString& target);
128 
129 
130  bool checkSymLink(const QString& symlinkPath);
131 
132 
138  QString getFilesizeString(Filesize filesize);
139 
140 
146  bool isAbsolute(const QString& filename);
147 
148 
149  QList<QChar> invalidFilenameChars();
150 
151 
158  bool writeFile(const QByteArray& raw_data, const QString& filename);
159 
166  bool readFileIntoString(const QString& filename, QString& content);
167 
174  bool readFileIntoByteArray(const QString& filename, QByteArray& content);
175 
181  bool checkFile(const QString& filepath);
182 
188  QString getCommonDirectory(const QStringList& paths);
189 
196  QString getCommonDirectory(QString dir1, QString dir2);
197 
203  bool createDir(const QString& dirName);
204 
211  bool copyDir(const QString& srcDir, const QString& targetDirectory, QString& new_filename);
212 
219  bool moveDir(const QString& srcDir, const QString& targetDirectory, QString& new_filename);
220 
227  bool renameDir(const QString& srcDir, const QString& newName);
228 
235  bool canCopyDir(const QString& srcDir, const QString& targetDirectory);
236 
243  bool moveFile(const QString& file, const QString& dir, QString& newName);
244 
251  bool copyFile(const QString& file, const QString& dir, QString& newName);
252 
259  bool moveFiles(const QStringList& files, const QString& dir, QStringList& newNames);
260 
267  bool renameFile(const QString& oldName, const QString& newName);
268 
275  bool copyFiles(const QStringList& files, const QString& dir, QStringList& new_files);
276 
277 
278  // Everything clear
284  bool isUrl(const QString& str);
285 
291  bool isWWW(const QString& str);
292 
298  bool isFile(const QString& filename);
299 
305  bool isDir(const QString& filename);
306 
312  bool isSoundFile(const QString& extension);
313 
319  bool isPlaylistFile(const QString& extension);
320 
326  bool isImageFile(const QString& extension);
327 
333  bool exists(const QString& filename);
334 
341  bool isSamePath(const QString& filename1, const QString& filename2);
342 
349  bool isSubdir(const QString& dir, const QString& parentDir);
350  }
351 }
352 
353 #endif // FileUtils_H
Util::File::getParentDirectory
QString getParentDirectory(const QString &path)
get parent directory of a filepath
Util::File::createDirectories
bool createDirectories(const QString &path)
create all directories necessary to access path
Util::File::readFileIntoString
bool readFileIntoString(const QString &filename, QString &content)
read a complete file into a string
Util::File::getParentDirectories
QStringList getParentDirectories(const QStringList &list)
extract parent folder of a file list (see also get_parentDirectory(const QString& path)
Util::File::getFilesizeString
QString getFilesizeString(Filesize filesize)
convert filesize to string
Util::File::removeFilesInDirectory
void removeFilesInDirectory(const QString &dirName, const QStringList &filters)
Remove all files from directory.
Util::File::isAbsolute
bool isAbsolute(const QString &filename)
Tell whether filename is absolute.
Util::File::copyDir
bool copyDir(const QString &srcDir, const QString &targetDirectory, QString &new_filename)
copyDir
Util::File::getFileExtension
QString getFileExtension(const QString &filename)
get file extension
QList
Definition: EngineUtils.h:33
Util::File::writeFile
bool writeFile(const QByteArray &raw_data, const QString &filename)
Write raw data to file.
Util::File::moveFiles
bool moveFiles(const QStringList &files, const QString &dir, QStringList &newNames)
move_files
Util::File::isImageFile
bool isImageFile(const QString &extension)
is_imagefile
Util::File::isUrl
bool isUrl(const QString &str)
is_url
Util
Helper functions.
Definition: GenreView.h:36
Util::File::splitDirectories
QStringList splitDirectories(const QString &path)
returns all parts of a directory path
Util::File::isSubdir
bool isSubdir(const QString &dir, const QString &parentDir)
Checks if dir is a subdir of parentDir.
Util::File::createSymlink
bool createSymlink(const QString &source, const QString &target)
create_symlink
Util::File::renameFile
bool renameFile(const QString &oldName, const QString &newName)
rename_file
Util::File::canCopyDir
bool canCopyDir(const QString &srcDir, const QString &targetDirectory)
can_copyDir
Util::File::getAbsoluteFilename
QString getAbsoluteFilename(const QString &filename)
get absolute filename of file
Util::File::createDir
bool createDir(const QString &dirName)
createDir
Util::File::splitFilename
void splitFilename(const QString &src, QString &dir, QString &filename)
split filename into the dir and filename
Util::File::deleteFiles
void deleteFiles(const QStringList &files)
Remove all given files (also directories can be specified)
Util::File::moveFile
bool moveFile(const QString &file, const QString &dir, QString &newName)
move_file
Util::File::isWWW
bool isWWW(const QString &str)
is_www
Util::File::isSamePath
bool isSamePath(const QString &filename1, const QString &filename2)
Compares two filepaths by cleaning them.
Util::File::isSoundFile
bool isSoundFile(const QString &extension)
is_soundfile
Util::File::getCommonDirectory
QString getCommonDirectory(const QStringList &paths)
get_commonDirectory
Util::File::isFile
bool isFile(const QString &filename)
is_file
Util::File::cleanFilename
QString cleanFilename(const QString &filename)
formatter for filepaths. Removes double separators and replaces them with os specific separators.
Util::File::moveDir
bool moveDir(const QString &srcDir, const QString &targetDirectory, QString &new_filename)
moveDir
Util::File::renameDir
bool renameDir(const QString &srcDir, const QString &newName)
renameDir
Util::File::getFilenameOfPath
QString getFilenameOfPath(const QString &path)
extract pure filename from a complete file path
Util::File::readFileIntoByteArray
bool readFileIntoByteArray(const QString &filename, QByteArray &content)
read a complete file into a byte array
Util::File::copyFile
bool copyFile(const QString &file, const QString &dir, QString &newName)
copy_file
Util::File::isPlaylistFile
bool isPlaylistFile(const QString &extension)
is_playlistfile
Util::File::checkFile
bool checkFile(const QString &filepath)
Check, if file is valid. Web URLs are always valid.
Util::File::exists
bool exists(const QString &filename)
exists
Util::File::isDir
bool isDir(const QString &filename)
isDir
Util::File::copyFiles
bool copyFiles(const QStringList &files, const QString &dir, QStringList &new_files)
copy_files