OSDN Git Service

Scan document directory.
[tombo/Tombo.git] / iOS / Tombo / Tombo / Storage.m
index 86fdd1a..024065c 100644 (file)
@@ -1,17 +1,47 @@
 #import "Storage.h"
+#import "FileItem.h"
 
 @implementation Storage
 
 @synthesize currentDirectory;
+@synthesize documentRoot;
+@synthesize fileManager;
 
 +(id)init {
     Storage *storage = [Storage alloc];
-    storage.currentDirectory = @"";
+    storage.currentDirectory = @"/";
+
+    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
+    storage.documentRoot = [paths objectAtIndex:0];
+
+    storage.fileManager = [NSFileManager defaultManager];
+
     return storage;
 }
 
+/*
+ * Enumerate current directory and return array of FileItem.
+ */
 -(NSArray*)listItems {
-    return [NSArray arrayWithObjects:@"abc", @"def", @"ghi", @"jkl", @"mno", @"pqr", nil];
+    NSError *error = nil;
+    NSString *currentPath = [documentRoot stringByAppendingString: currentDirectory];
+    NSArray *files = [fileManager contentsOfDirectoryAtPath: currentPath
+                                                      error: &error];
+    if (error) {
+        return [NSArray alloc];
+    }
+    
+    NSMutableArray *result = [NSMutableArray arrayWithCapacity: files.count];
+    for (NSString *f in files) {
+        FileItem *item = [FileItem alloc];
+        item.path = [currentPath stringByAppendingString: f];
+        item.name = [f stringByDeletingPathExtension];
+        BOOL bDir = NO;
+        [fileManager fileExistsAtPath:item.path isDirectory:&bDir];
+        item.isDirectory = bDir;
+        [result addObject:item];
+    }
+    return result;
 }
 
 @end