-
Notifications
You must be signed in to change notification settings - Fork 18
/
URIUtils.h
115 lines (104 loc) · 4.98 KB
/
URIUtils.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/*
* Copyright (C) 2005-2010 Team XBMC
* http://www.xbmc.org
*
* This Program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This Program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with XBMC; see the file COPYING. If not, write to
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
* http://www.gnu.org/copyleft/gpl.html
*
*/
#pragma once
#include "StdString.h"
class CURL;
class URIUtils
{
public:
URIUtils(void);
virtual ~URIUtils(void);
static CStdString GetParentFolderURI(const CStdString& uri,
bool preserveFileNameInPath);
static bool IsInPath(const CStdString &uri, const CStdString &baseURI);
static void GetDirectory(const CStdString& strFilePath,
CStdString& strDirectoryPath);
static const CStdString GetExtension(const CStdString& strFileName);
static void GetExtension(const CStdString& strFile, CStdString& strExtension);
static const CStdString GetFileName(const CStdString& strFileNameAndPath);
static void RemoveExtension(CStdString& strFileName);
static CStdString ReplaceExtension(const CStdString& strFile,
const CStdString& strNewExtension);
static void Split(const CStdString& strFileNameAndPath,
CStdString& strPath, CStdString& strFileName);
static CStdStringArray SplitPath(const CStdString& strPath);
static void GetCommonPath(CStdString& strPath, const CStdString& strPath2);
static CStdString GetParentPath(const CStdString& strPath);
static bool GetParentPath(const CStdString& strPath, CStdString& strParent);
static CStdString SubstitutePath(const CStdString& strPath);
static bool IsAddonsPath(const CStdString& strFile);
static bool IsSourcesPath(const CStdString& strFile);
static bool IsCDDA(const CStdString& strFile);
static bool IsDAAP(const CStdString& strFile);
static bool IsDOSPath(const CStdString &path);
static bool IsDVD(const CStdString& strFile);
static bool IsFTP(const CStdString& strFile);
static bool IsHD(const CStdString& strFileName);
static bool IsHDHomeRun(const CStdString& strFile);
static bool IsSlingbox(const CStdString& strFile);
static bool IsHTSP(const CStdString& strFile);
static bool IsInArchive(const CStdString& strFile);
static bool IsInRAR(const CStdString& strFile);
static bool IsInternetStream(const CURL& url, bool bStrictCheck = false);
static bool IsInZIP(const CStdString& strFile);
static bool IsISO9660(const CStdString& strFile);
static bool IsLastFM(const CStdString& strFile);
static bool IsLiveTV(const CStdString& strFile);
static bool IsMultiPath(const CStdString& strPath);
static bool IsMusicDb(const CStdString& strFile);
static bool IsMythTV(const CStdString& strFile);
static bool IsNfs(const CStdString& strFile);
static bool IsAfp(const CStdString& strFile);
static bool IsOnDVD(const CStdString& strFile);
static bool IsOnLAN(const CStdString& strFile);
static bool IsPlugin(const CStdString& strFile);
static bool IsScript(const CStdString& strFile);
static bool IsRAR(const CStdString& strFile);
static bool IsRemote(const CStdString& strFile);
static bool IsSmb(const CStdString& strFile);
static bool IsSpecial(const CStdString& strFile);
static bool IsStack(const CStdString& strFile);
static bool IsTuxBox(const CStdString& strFile);
static bool IsUPnP(const CStdString& strFile);
static bool IsURL(const CStdString& strFile);
static bool IsVideoDb(const CStdString& strFile);
static bool IsVTP(const CStdString& strFile);
static bool IsZIP(const CStdString& strFile);
static void AddSlashAtEnd(CStdString& strFolder);
static bool HasSlashAtEnd(const CStdString& strFile);
static void RemoveSlashAtEnd(CStdString& strFolder);
static void CreateArchivePath(CStdString& strUrlPath,
const CStdString& strType,
const CStdString& strArchivePath,
const CStdString& strFilePathInArchive,
const CStdString& strPwd="");
static void AddFileToFolder(const CStdString& strFolder,
const CStdString& strFile, CStdString& strResult);
static CStdString AddFileToFolder(const CStdString &strFolder,
const CStdString &strFile)
{
CStdString result;
AddFileToFolder(strFolder, strFile, result);
return result;
}
static bool ProtocolHasParentInHostname(const CStdString& prot);
static bool ProtocolHasEncodedHostname(const CStdString& prot);
};