How to create nested directories in PhoneGap

Posted by Stallman on Stack Overflow See other posts from Stack Overflow or by Stallman
Published on 2012-12-15T08:39:40Z Indexed on 2012/12/15 11:04 UTC
Read the original article Hit count: 280

I have tried on this, but this didn't satisfy my request at all. I write a new one:

var file_system; 
var fs_root;

    window.requestFileSystem(LocalFileSystem.PERSISTENT, 1024*1024, onInitFs, request_FS_fail);

function onInitFs(fs)
{
file_system= fs;
fs_root= file_system.root;
    alert("ini fs");
    create_Directory();
    alert("ini fs done.");
}

var string_array;

var main_dir= "story_repository/"+ User_Editime; 
string_array= new Array("story_repository/",main_dir, main_dir+"/rec", main_dir+"/img","story_repository/"+ User_Name );

function create_Directory(){
var start= 0;
var path="";
while(start < string_array.length)
{
    path = string_array[start]; 
    alert(start+" th created directory " +" is "+ path);
    fs_root.getDirectory
    (
        path ,

        {create: true, exclusive: false},

        function(entry)
        {
            alert(path +"is created.");
        },

        create_dir_err()
    );                      
        start++;
}//while loop

}//create_Directory

function create_dir_err()
{
    alert("Recursively create directories error.");
}

    function request_FS_fail()
    {
        alert("Failed to request File System ");
    }

Although the directories are created, the it sends me
ErrorCallback:"alert("Recursively create directories error.");"
Firstly, I don't think this code will work since I have tried on this: This one failed:

window.requestFileSystem(
LocalFileSystem.PERSISTENT, 
0,
//request file system success callback. 
function(fileSys) 
{ 

fileSys.root.getDirectory(
    "story_repository/"+ dir_name, 
    {create: true, exclusive: false}, 

    //Create directory story_repository/Stallman_time. 
    function(directory) 
    { 
        alert("Create directory: "+ "story_repository/"+ dir_name);
        //create dir_name/img/
        fileSys.root.getDirectory
        {
            "story_repository/"+ dir_name + "/img/",             
            {create: true, exclusive: false},       
            function(directory)
            {
                alert("Create a directory: "+ "story_repository/"+ dir_name + "/img/"); //check.
                //create dir_name/rec/
                fileSys.root.getDirectory
                {
                    "story_repository/"+ dir_name + "/rec/",                 
                    {create: true, exclusive: false},       
                    function(directory)
                    {
                        alert("Create a directory: "+ "story_repository/"+ dir_name + "/rec/"); //check.        
                        //Go ahead.

                    },
                    createError
                }               
                //create dir_name/rec/          
            },
            createError
        } 
        //create dir_name/img
    },  
    createError);
}, 
//Create directory story_repository/Stallman_time.

createError());     

}

I just repeatedly call fs.root.getDirectory only but it failed. But the first one is almost the same...
1. What is the problem at all? Why does the first one always gives me the ErrorCallback?
2. Why can't the second one work?
3. Does anyone has a better solution?(no ErrorcallBack msg)

ps: I work on Android and PhoneGap 1.7.0.

© Stack Overflow or respective owner

Related posts about JavaScript

Related posts about android