ObjFW
OFString+PathAdditions.h
1 /*
2  * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
3  *
4  * All rights reserved.
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License version 3.0 only,
8  * as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * version 3.0 for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * version 3.0 along with this program. If not, see
17  * <https://www.gnu.org/licenses/>.
18  */
19 
20 #import "OFString.h"
21 
22 OF_ASSUME_NONNULL_BEGIN
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 extern int _OFString_PathAdditions_reference OF_VISIBILITY_HIDDEN;
28 #ifdef __cplusplus
29 }
30 #endif
31 
32 @interface OFString (PathAdditions)
36 @property (readonly, nonatomic, getter=isAbsolutePath) bool absolutePath;
37 
41 @property (readonly, nonatomic) OFArray OF_GENERIC(OFString *) *pathComponents;
42 
46 @property (readonly, nonatomic) OFString *lastPathComponent;
47 
51 @property (readonly, nonatomic) OFString *pathExtension;
52 
56 @property (readonly, nonatomic) OFString *stringByDeletingLastPathComponent;
57 
61 @property (readonly, nonatomic) OFString *stringByDeletingPathExtension;
62 
66 @property (readonly, nonatomic) OFString *stringByStandardizingPath;
67 
74 + (OFString *)pathWithComponents: (OFArray OF_GENERIC(OFString *) *)components;
75 
82 - (OFString *)stringByAppendingPathComponent: (OFString *)component;
83 
90 - (OFString *)stringByAppendingPathExtension: (OFString *)extension;
91 
92 - (bool)of_isDirectoryPath;
93 - (OFString *)of_pathToIRIPathWithPercentEncodedHost:
94  (OFString *__autoreleasing _Nullable *_Nonnull)percentEncodedHost;
95 - (OFString *)of_IRIPathToPathWithPercentEncodedHost:
96  (nullable OFString *)percentEncodedHost;
97 - (OFString *)of_pathComponentToIRIPathComponent;
98 @end
99 
100 OF_ASSUME_NONNULL_END
An abstract class for storing objects in an array.
Definition: OFArray.h:107
A class for handling strings.
Definition: OFString.h:142