Skip to content

Commit 1eacac8

Browse files
committed
Added unlink suport
1 parent afdb160 commit 1eacac8

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

FS.ios.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,14 @@ var _readDir = Promise.promisify(RNFSManager.readDir);
88
var _stat = Promise.promisify(RNFSManager.stat);
99
var _readFile = Promise.promisify(RNFSManager.readFile);
1010
var _writeFile = Promise.promisify(RNFSManager.writeFile);
11+
var _unlink = Promise.promisify(RNFSManager.unlink);
1112

1213
var convertError = (err) => {
13-
var error = new Error(err.description);
14+
if (err.isOperational) {
15+
err = err.cause;
16+
}
17+
18+
var error = new Error(err.description || err.message);
1419
error.code = err.code;
1520
throw error;
1621
};
@@ -57,6 +62,11 @@ var RNFS = {
5762
.catch(convertError);
5863
},
5964

65+
unlink(filepath) {
66+
return _unlink(filepath)
67+
.catch(convertError);
68+
},
69+
6070
MainBundle: RNFSManager.MainBundleDirectory,
6171
CachesDirectory: RNFSManager.NSCachesDirectory,
6272
DocumentDirectory: RNFSManager.NSDocumentDirectory,

RNFSManager.m

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ @implementation RNFSManager
6969
}
7070

7171
RCT_EXPORT_METHOD(writeFile:(NSString*)filepath contents:(NSString*)base64Content attributes:(NSDictionary*)attributes callback:(RCTResponseSenderBlock)callback){
72-
7372
NSData *data = [[NSData alloc] initWithBase64EncodedString:base64Content options:NSDataBase64DecodingIgnoreUnknownCharacters];
7473
BOOL success = [[NSFileManager defaultManager] createFileAtPath:filepath contents:data attributes:attributes];
7574

@@ -80,10 +79,28 @@ @implementation RNFSManager
8079
callback(@[[NSNull null], [NSNumber numberWithBool:success]]);
8180
}
8281

82+
RCT_EXPORT_METHOD(unlink:(NSString*)filepath callback:(RCTResponseSenderBlock)callback) {
83+
NSFileManager *manager = [NSFileManager defaultManager];
84+
BOOL exists = [manager fileExistsAtPath:filepath isDirectory:false];
85+
86+
if (!exists) {
87+
return callback(@[[NSString stringWithFormat:@"File at path %@ does not exist", filepath]]);
88+
}
89+
NSError *error;
90+
BOOL success = [manager removeItemAtPath:filepath error:&error];
91+
92+
if (!success) {
93+
NSLog(@"%@", error);
94+
return callback([self makeErrorPayload:error]);
95+
}
96+
97+
callback(@[[NSNull null], [NSNumber numberWithBool:success], filepath]);
98+
}
99+
83100
RCT_EXPORT_METHOD(readFile:(NSString*)filepath callback:(RCTResponseSenderBlock)callback){
84101
NSData *content = [[NSFileManager defaultManager] contentsAtPath:filepath];
85102
NSString *base64Content = [content base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed];
86-
NSLog(@"%@", base64Content);
103+
87104
if (!base64Content) {
88105
return callback(@[[NSString stringWithFormat:@"Could not read file at path %@", filepath]]);
89106
}

0 commit comments

Comments
 (0)