OSDN Git Service

Add move file
[tombo/Tombo.git] / iOS / Tombo / Tombo / Storage.m
index 23acb2a..78f96b9 100644 (file)
     return result;
 }
 
+- (NSArray *)listFolders {
+    NSMutableArray *result = [NSMutableArray arrayWithCapacity:10];
+    
+    [result addObject:@"/"];
+    [self listFoldersRec:result path:@"/"];
+    NSComparator compr = ^(id a, id b) {
+        NSString *strA = (NSString *)a;
+        NSString *strB = (NSString *)b;
+        return [strA compare:strB];
+    };
+    return [result sortedArrayUsingComparator:compr];
+}
+
+- (void)listFoldersRec:(NSMutableArray *)result path:(NSString *)path {
+    NSError *error = nil;
+    NSString *partPath = [documentRoot stringByAppendingString:path];
+    NSArray *files = [fileManager contentsOfDirectoryAtPath:partPath
+                                                      error:&error];
+    
+    for (NSString *f in files) {
+        BOOL bDir = NO;
+        NSString *p = [partPath stringByAppendingString:f];
+        [fileManager fileExistsAtPath:p isDirectory:&bDir];
+        if (!bDir) continue;
+        NSString *pFolder = [path stringByAppendingString:f];
+        [result addObject:pFolder];
+        [self listFoldersRec:result path:[pFolder stringByAppendingString:@"/"]];
+    }
+}
+
 -(void)chdir:(NSString *)subdir {
     NSString *newCurrent = [currentDirectory stringByAppendingPathComponent:subdir];
     self.currentDirectory = [newCurrent stringByAppendingString:@"/"];
 }
 
 - (FileItem *)decrypt:(NSString *)key item:(FileItem*)item {
-    // TODO: implement
     NSData *encData = [NSData dataWithContentsOfFile:item.path];
     NSError *error = nil;
     NSData *plainData = [CryptCore decrypt:key data:encData error:&error];
     return newItem;    
 }
 
+- (void)moveFrom:(FileItem *)from to:(FileItem *)to {
+    NSString *name = [from.path lastPathComponent];
+    NSMutableString *toPath = [[NSMutableString alloc]initWithCapacity:200];
+    [toPath appendString:to.path];
+    [toPath appendString:@"/"];
+    [toPath appendString:name];
+    
+    NSError *error = nil;
+    [fileManager moveItemAtPath:from.path toPath:toPath error:&error];
+}
+
+- (NSString *)moveFrom:(FileItem *)from toPath:(NSString *)to {
+    NSString *name = [from.path lastPathComponent];
+    NSMutableString *toPath = [[NSMutableString alloc]initWithCapacity:200];
+    [toPath appendString:documentRoot];
+    [toPath appendString:to];
+    [toPath appendString:@"/"];
+    [toPath appendString:name];
+    
+    NSError *error = nil;
+    [fileManager moveItemAtPath:from.path toPath:toPath error:&error];
+    return toPath;
+}
+
 @end