@@ -86,6 +86,7 @@ - (NSDictionary *)constantsToExport
8686 }];
8787}
8888
89+ #pragma mark - fs.createFile
8990RCT_EXPORT_METHOD (createFile:(NSString *)path data:(NSString *)data encoding:(NSString *)encoding callback:(RCTResponseSenderBlock)callback) {
9091
9192 NSFileManager * fm = [NSFileManager defaultManager ];
@@ -112,7 +113,7 @@ - (NSDictionary *)constantsToExport
112113 callback (@[[NSString stringWithFormat: @" failed to create new file at path %@ please ensure the folder exists" ]]);
113114
114115}
115-
116+ # pragma mark - fs.createFileASCII
116117// method for create file with ASCII content
117118RCT_EXPORT_METHOD (createFileASCII:(NSString *)path data:(NSArray *)dataArray callback:(RCTResponseSenderBlock)callback) {
118119
@@ -134,24 +135,22 @@ - (NSDictionary *)constantsToExport
134135
135136}
136137
137-
138+ # pragma mark - fs.exists
138139RCT_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];
144141}
145142
143+ #pragma mark - fs.writeFile
146144RCT_EXPORT_METHOD (writeFile:(NSString *)path encoding:(NSString *)encoding data:(NSString *)data append:(BOOL )append resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
147-
148145 [RNFetchBlobFS writeFile: path encoding: [NSString stringWithString: encoding] data: data append: append resolver: resolve rejecter: reject];
149146})
150147
148+ #pragma mark - fs.writeArray
151149RCT_EXPORT_METHOD (writeFileArray:(NSString *)path data:(NSArray *)data append:(BOOL )append resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
152150 [RNFetchBlobFS writeFileArray: path data: data append: append resolver: resolve rejecter: reject];
153151})
154152
153+ #pragma mark - fs.writeStream
155154RCT_EXPORT_METHOD (writeStream:(NSString *)path withEncoding:(NSString *)encoding appendData:(BOOL )append callback:(RCTResponseSenderBlock)callback) {
156155 RNFetchBlobFS * fileStream = [[RNFetchBlobFS alloc ] initWithBridgeRef: self .bridge];
157156 NSFileManager * fm = [NSFileManager defaultManager ];
@@ -165,6 +164,7 @@ - (NSDictionary *)constantsToExport
165164 callback (@[[NSNull null ], streamId]);
166165}
167166
167+ #pragma mark - fs.writeArrayChunk
168168RCT_EXPORT_METHOD (writeArrayChunk:(NSString *)streamId withArray:(NSArray *)dataArray callback:(RCTResponseSenderBlock) callback) {
169169 RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
170170 char * bytes = (char *) malloc ([dataArray count ]);
@@ -178,12 +178,14 @@ - (NSDictionary *)constantsToExport
178178 callback (@[[NSNull null ]]);
179179}
180180
181+ #pragma mark - fs.writeChunk
181182RCT_EXPORT_METHOD (writeChunk:(NSString *)streamId withData:(NSString *)data callback:(RCTResponseSenderBlock) callback) {
182183 RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
183184 [fs writeEncodeChunk: data];
184185 callback (@[[NSNull null ]]);
185186}
186187
188+ #pragma mark - fs.closeStream
187189RCT_EXPORT_METHOD (closeStream:(NSString *)streamId callback:(RCTResponseSenderBlock) callback) {
188190 RNFetchBlobFS *fs = [[RNFetchBlobFS getFileStreams ] valueForKey: streamId];
189191 [fs closeOutStream ];
@@ -200,6 +202,7 @@ - (NSDictionary *)constantsToExport
200202 callback (@[[NSString stringWithFormat: @" failed to unlink file or path at %@ " , path]]);
201203}
202204
205+ #pragma mark - fs.removeSession
203206RCT_EXPORT_METHOD (removeSession:(NSArray *)paths callback:(RCTResponseSenderBlock) callback) {
204207 NSError * error = nil ;
205208 NSString * tmpPath = nil ;
@@ -215,6 +218,7 @@ - (NSDictionary *)constantsToExport
215218
216219}
217220
221+ #pragma mark - fs.ls
218222RCT_EXPORT_METHOD (ls:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
219223 NSFileManager * fm = [NSFileManager defaultManager ];
220224 BOOL exist = nil ;
@@ -234,28 +238,46 @@ - (NSDictionary *)constantsToExport
234238
235239}
236240
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 ]]);
256264
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+ }];
257278}
258279
280+ #pragma mark - fs.lstat
259281RCT_EXPORT_METHOD (lstat:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
260282 NSFileManager * fm = [NSFileManager defaultManager ];
261283 BOOL exist = nil ;
@@ -289,6 +311,7 @@ - (NSDictionary *)constantsToExport
289311
290312}
291313
314+ #pragma mark - fs.cp
292315RCT_EXPORT_METHOD (cp:(NSString *)src toPath:(NSString *)dest callback:(RCTResponseSenderBlock) callback) {
293316
294317// path = [RNFetchBlobFS getPathOfAsset:path];
@@ -312,6 +335,8 @@ - (NSDictionary *)constantsToExport
312335
313336}
314337
338+
339+ #pragma mark - fs.mv
315340RCT_EXPORT_METHOD (mv:(NSString *)path toPath:(NSString *)dest callback:(RCTResponseSenderBlock) callback) {
316341 NSError * error = nil ;
317342 BOOL result = [[NSFileManager defaultManager ] moveItemAtURL: [NSURL fileURLWithPath: path] toURL: [NSURL fileURLWithPath: dest] error: &error];
@@ -323,8 +348,9 @@ - (NSDictionary *)constantsToExport
323348
324349}
325350
351+ #pragma mark - fs.mkdir
326352RCT_EXPORT_METHOD (mkdir:(NSString *)path callback:(RCTResponseSenderBlock) callback) {
327- if ([RNFetchBlobFS exists : path]) {
353+ if ([[ NSFileManager defaultManager ] fileExistsAtPath : path]) {
328354 callback (@[@" mkdir failed, folder already exists" ]);
329355 return ;
330356 }
@@ -333,11 +359,13 @@ - (NSDictionary *)constantsToExport
333359 callback (@[[NSNull null ]]);
334360}
335361
362+ #pragma mark - fs.readFile
336363RCT_EXPORT_METHOD (readFile:(NSString *)path encoding:(NSString *)encoding resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject {
337364
338365 [RNFetchBlobFS readFile: path encoding: encoding resolver: resolve rejecter: reject onComplete: nil ];
339366})
340367
368+ #pragma mark - fs.readStream
341369RCT_EXPORT_METHOD (readStream:(NSString *)path withEncoding:(NSString *)encoding bufferSize:(int )bufferSize) {
342370
343371 RNFetchBlobFS *fileStream = [[RNFetchBlobFS alloc ] initWithBridgeRef: self .bridge];
@@ -351,6 +379,7 @@ - (NSDictionary *)constantsToExport
351379 [fileStream readWithPath: path useEncoding: encoding bufferSize: bufferSize];
352380}
353381
382+ #pragma mark - fs.getEnvionmentDirs
354383RCT_EXPORT_METHOD (getEnvironmentDirs:(RCTResponseSenderBlock) callback) {
355384
356385 callback (@[
@@ -359,20 +388,24 @@ - (NSDictionary *)constantsToExport
359388 ]);
360389}
361390
391+ #pragma mark - net.cancelRequest
362392RCT_EXPORT_METHOD (cancelRequest:(NSString *)taskId callback:(RCTResponseSenderBlock)callback) {
363393 [RNFetchBlobNetwork cancelRequest: taskId];
364394 callback (@[[NSNull null ], taskId]);
365395
366396}
367397
398+ #pragma mark - net.enableProgressReport
368399RCT_EXPORT_METHOD (enableProgressReport:(NSString *)taskId {
369400 [RNFetchBlobNetwork enableProgressReport: taskId];
370401})
371402
403+ #pragma mark - net.enableUploadProgressReport
372404RCT_EXPORT_METHOD (enableUploadProgressReport:(NSString *)taskId {
373405 [RNFetchBlobNetwork enableUploadProgress: taskId];
374406})
375407
408+ #pragma mark - fs.slice
376409RCT_EXPORT_METHOD (slice:(NSString *)src dest:(NSString *)dest start:(nonnull NSNumber *)start end:(nonnull NSNumber *)end resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject
377410{
378411 [RNFetchBlobFS slice: src dest: dest start: start end: end encode: @" " resolver: resolve rejecter: reject];
0 commit comments