@@ -86,6 +86,7 @@ - (NSDictionary *)constantsToExport
86
86
}];
87
87
}
88
88
89
+ #pragma mark - fs.createFile
89
90
RCT_EXPORT_METHOD (createFile:(NSString *)path data:(NSString *)data encoding:(NSString *)encoding callback:(RCTResponseSenderBlock)callback) {
90
91
91
92
NSFileManager * fm = [NSFileManager defaultManager ];
@@ -112,7 +113,7 @@ - (NSDictionary *)constantsToExport
112
113
callback (@[[NSString stringWithFormat: @" failed to create new file at path %@ please ensure the folder exists" ]]);
113
114
114
115
}
115
-
116
+ # pragma mark - fs.createFileASCII
116
117
// method for create file with ASCII content
117
118
RCT_EXPORT_METHOD (createFileASCII:(NSString *)path data:(NSArray *)dataArray callback:(RCTResponseSenderBlock)callback) {
118
119
@@ -134,24 +135,22 @@ - (NSDictionary *)constantsToExport
134
135
135
136
}
136
137
137
-
138
+ # pragma mark - fs.exists
138
139
RCT_EXPORT_METHOD (exists:(NSString *)path callback:(RCTResponseSenderBlock)callback) {
139
- BOOL isDir = NO ;
140
- BOOL exists = NO ;
141
- exists = [[NSFileManager defaultManager ] fileExistsAtPath: path isDirectory: &isDir];
142
- callback (@[@(exists), @(isDir)]);
143
-
140
+ [RNFetchBlobFS exists: path callback: callback];
144
141
}
145
142
143
+ #pragma mark - fs.writeFile
146
144
RCT_EXPORT_METHOD (writeFile:(NSString *)path encoding:(NSString *)encoding data:(NSString *)data append:(BOOL )append resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
147
-
148
145
[RNFetchBlobFS writeFile: path encoding: [NSString stringWithString: encoding] data: data append: append resolver: resolve rejecter: reject];
149
146
})
150
147
148
+ #pragma mark - fs.writeArray
151
149
RCT_EXPORT_METHOD (writeFileArray:(NSString *)path data:(NSArray *)data append:(BOOL )append resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
152
150
[RNFetchBlobFS writeFileArray: path data: data append: append resolver: resolve rejecter: reject];
153
151
})
154
152
153
+ #pragma mark - fs.writeStream
155
154
RCT_EXPORT_METHOD (writeStream:(NSString *)path withEncoding:(NSString *)encoding appendData:(BOOL )append callback:(RCTResponseSenderBlock)callback) {
156
155
RNFetchBlobFS * fileStream = [[RNFetchBlobFS alloc ] initWithBridgeRef: self .bridge];
157
156
NSFileManager * fm = [NSFileManager defaultManager ];
@@ -165,6 +164,7 @@ - (NSDictionary *)constantsToExport
165
164
callback (@[[NSNull null ], streamId]);
166
165
}
167
166
167
+ #pragma mark - fs.writeArrayChunk
168
168
RCT_EXPORT_METHOD (writeArrayChunk:(NSString *)streamId withArray:(NSArray *)dataArray callback:(RCTResponseSenderBlock) callback) {
169
169
RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
170
170
char * bytes = (char *) malloc ([dataArray count ]);
@@ -178,12 +178,14 @@ - (NSDictionary *)constantsToExport
178
178
callback (@[[NSNull null ]]);
179
179
}
180
180
181
+ #pragma mark - fs.writeChunk
181
182
RCT_EXPORT_METHOD (writeChunk:(NSString *)streamId withData:(NSString *)data callback:(RCTResponseSenderBlock) callback) {
182
183
RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
183
184
[fs writeEncodeChunk: data];
184
185
callback (@[[NSNull null ]]);
185
186
}
186
187
188
+ #pragma mark - fs.closeStream
187
189
RCT_EXPORT_METHOD (closeStream:(NSString *)streamId callback:(RCTResponseSenderBlock) callback) {
188
190
RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
189
191
[fs closeOutStream ];
@@ -200,6 +202,7 @@ - (NSDictionary *)constantsToExport
200
202
callback (@[[NSString stringWithFormat: @" failed to unlink file or path at %@ " , path]]);
201
203
}
202
204
205
+ #pragma mark - fs.removeSession
203
206
RCT_EXPORT_METHOD (removeSession:(NSArray *)paths callback:(RCTResponseSenderBlock) callback) {
204
207
NSError * error = nil ;
205
208
NSString * tmpPath = nil ;
@@ -215,6 +218,7 @@ - (NSDictionary *)constantsToExport
215
218
216
219
}
217
220
221
+ #pragma mark - fs.ls
218
222
RCT_EXPORT_METHOD (ls:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
219
223
NSFileManager * fm = [NSFileManager defaultManager ];
220
224
BOOL exist = nil ;
@@ -234,28 +238,46 @@ - (NSDictionary *)constantsToExport
234
238
235
239
}
236
240
237
- RCT_EXPORT_METHOD (stat:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
238
- NSFileManager * fm = [NSFileManager defaultManager ];
239
- BOOL exist = nil ;
240
- BOOL isDir = nil ;
241
- NSError * error = nil ;
242
-
243
- path = [RNFetchBlobFS getPathOfAsset: path];
244
-
245
- exist = [fm fileExistsAtPath: path isDirectory: &isDir];
246
- if (exist == NO ) {
247
- callback (@[[NSString stringWithFormat: @" failed to list path `%@ ` for it is not exist or it is not exist" , path]]);
248
- return ;
249
- }
250
- NSData * res = [RNFetchBlobFS stat: path error: &error];
251
-
252
- if (error == nil )
253
- callback (@[[NSNull null ], res]);
254
- else
255
- callback (@[[error localizedDescription ], [NSNull null ]]);
241
+ #pragma mark - fs.stat
242
+ RCT_EXPORT_METHOD (stat:(NSString *)target callback:(RCTResponseSenderBlock) callback) {
243
+
244
+ [RNFetchBlobFS getPathFromUri: target completionHandler: ^(NSString *path, ALAssetRepresentation *asset) {
245
+ __block NSMutableArray * result;
246
+ if (path != nil )
247
+ {
248
+ NSFileManager * fm = [NSFileManager defaultManager ];
249
+ BOOL exist = nil ;
250
+ BOOL isDir = nil ;
251
+ NSError * error = nil ;
252
+
253
+ exist = [fm fileExistsAtPath: path isDirectory: &isDir];
254
+ if (exist == NO ) {
255
+ callback (@[[NSString stringWithFormat: @" failed to stat path `%@ ` for it is not exist or it is not exist" , path]]);
256
+ return ;
257
+ }
258
+ result = [RNFetchBlobFS stat: path error: &error];
259
+
260
+ if (error == nil )
261
+ callback (@[[NSNull null ], result]);
262
+ else
263
+ callback (@[[error localizedDescription ], [NSNull null ]]);
256
264
265
+ }
266
+ else if (asset != nil )
267
+ {
268
+ __block NSNumber * size = [NSNumber numberWithLong: [asset size ]];
269
+ result = [asset metadata ];
270
+ [result setValue: size forKey: @" size" ];
271
+ callback (@[[NSNull null ], result]);
272
+ }
273
+ else
274
+ {
275
+ callback (@[@" failed to stat path, could not resolve URI" , [NSNull null ]]);
276
+ }
277
+ }];
257
278
}
258
279
280
+ #pragma mark - fs.lstat
259
281
RCT_EXPORT_METHOD (lstat:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
260
282
NSFileManager * fm = [NSFileManager defaultManager ];
261
283
BOOL exist = nil ;
@@ -289,6 +311,7 @@ - (NSDictionary *)constantsToExport
289
311
290
312
}
291
313
314
+ #pragma mark - fs.cp
292
315
RCT_EXPORT_METHOD (cp:(NSString *)src toPath:(NSString *)dest callback:(RCTResponseSenderBlock) callback) {
293
316
294
317
// path = [RNFetchBlobFS getPathOfAsset:path];
@@ -312,6 +335,8 @@ - (NSDictionary *)constantsToExport
312
335
313
336
}
314
337
338
+
339
+ #pragma mark - fs.mv
315
340
RCT_EXPORT_METHOD (mv:(NSString *)path toPath:(NSString *)dest callback:(RCTResponseSenderBlock) callback) {
316
341
NSError * error = nil ;
317
342
BOOL result = [[NSFileManager defaultManager ] moveItemAtURL: [NSURL fileURLWithPath: path] toURL: [NSURL fileURLWithPath: dest] error: &error];
@@ -323,8 +348,9 @@ - (NSDictionary *)constantsToExport
323
348
324
349
}
325
350
351
+ #pragma mark - fs.mkdir
326
352
RCT_EXPORT_METHOD (mkdir:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
327
- if ([RNFetchBlobFS exists : path]) {
353
+ if ([[ NSFileManager defaultManager ] fileExistsAtPath : path]) {
328
354
callback (@[@" mkdir failed, folder already exists" ]);
329
355
return ;
330
356
}
@@ -333,11 +359,13 @@ - (NSDictionary *)constantsToExport
333
359
callback (@[[NSNull null ]]);
334
360
}
335
361
362
+ #pragma mark - fs.readFile
336
363
RCT_EXPORT_METHOD (readFile:(NSString *)path encoding:(NSString *)encoding resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
337
364
338
365
[RNFetchBlobFS readFile: path encoding: encoding resolver: resolve rejecter: reject onComplete: nil ];
339
366
})
340
367
368
+ #pragma mark - fs.readStream
341
369
RCT_EXPORT_METHOD (readStream:(NSString *)path withEncoding:(NSString *)encoding bufferSize:(int )bufferSize) {
342
370
343
371
RNFetchBlobFS *fileStream = [[RNFetchBlobFS alloc ] initWithBridgeRef: self .bridge];
@@ -351,6 +379,7 @@ - (NSDictionary *)constantsToExport
351
379
[fileStream readWithPath: path useEncoding: encoding bufferSize: bufferSize];
352
380
}
353
381
382
+ #pragma mark - fs.getEnvionmentDirs
354
383
RCT_EXPORT_METHOD (getEnvironmentDirs:(RCTResponseSenderBlock) callback) {
355
384
356
385
callback (@[
@@ -359,20 +388,24 @@ - (NSDictionary *)constantsToExport
359
388
]);
360
389
}
361
390
391
+ #pragma mark - net.cancelRequest
362
392
RCT_EXPORT_METHOD (cancelRequest:(NSString *)taskId callback:(RCTResponseSenderBlock)callback) {
363
393
[RNFetchBlobNetwork cancelRequest: taskId];
364
394
callback (@[[NSNull null ], taskId]);
365
395
366
396
}
367
397
398
+ #pragma mark - net.enableProgressReport
368
399
RCT_EXPORT_METHOD (enableProgressReport:(NSString *)taskId {
369
400
[RNFetchBlobNetwork enableProgressReport: taskId];
370
401
})
371
402
403
+ #pragma mark - net.enableUploadProgressReport
372
404
RCT_EXPORT_METHOD (enableUploadProgressReport:(NSString *)taskId {
373
405
[RNFetchBlobNetwork enableUploadProgress: taskId];
374
406
})
375
407
408
+ #pragma mark - fs.slice
376
409
RCT_EXPORT_METHOD (slice:(NSString *)src dest:(NSString *)dest start:(nonnull NSNumber *)start end:(nonnull NSNumber *)end resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject
377
410
{
378
411
[RNFetchBlobFS slice: src dest: dest start: start end: end encode: @" " resolver: resolve rejecter: reject];
0 commit comments