未使用phonegap android创建目录

未使用phonegap android创建目录,android,cordova,directory,cordova-plugin-file,Android,Cordova,Directory,Cordova Plugin File,创建目录时遇到问题,以下是我的代码: var d = new Date(); var n = d.getTime(); var newFileName = n + ".jpg"; var myFolderApp = "myFolder"; var newFile=myFolderApp+"/"+newFileName; window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { alert(

创建目录时遇到问题,以下是我的代码:

var d = new Date(); 
var n = d.getTime(); 
var newFileName = n + ".jpg"; 
var myFolderApp = "myFolder"; 
var newFile=myFolderApp+"/"+newFileName; 

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSys) { 
alert('root is :'+fileSys.root.name) 

fileSys.root.getDirectory("myFolder",{create:true, exclusive: false}, 
function(directory) 
{ 
alert('direcrory name :'+directory.name) 
fileSystem.copyTo(directory, newFileName,function(fileSystem) 
{ 

alert('file sved!') 

      }, resOnError); 
   }, 
     resOnError); 
 }, 
  resOnError); 

 function resOnError(error) { 
    alert('Error at resOnError :'+error.code+' ,message :'+eror.message); 
    } 
还添加了读写权限

  • 这是使用的插件“cordova插件添加cordova插件文件”
  • 通过另一个函数调用此函数,而不是使用设备就绪事件
  • 3.未创建目录,代码执行时没有错误

    谢谢


    这是密码 var pictureSource;//图像源 var destinationType;//设置返回值的格式

    (function(){
         document.addEventListener("deviceready", onDeviceReady, false);
    })();
    
    
    function onDeviceReady() 
    {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;   
    }
    
    function save()
    {
         alert(imageForCategory)
                   window.resolveLocalFileSystemURL(imageForCategory,resolveOnSuccess,resOnError);
    }
    
    function onFail(message) 
    {
          alert('Failed because: ' + message);
    }
    function getPhoto(source) 
    {
          navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality:     100,destinationType: destinationType.FILE_URI,sourceType: source });
    }
    var imageForCategory="";
    function onPhotoURISuccess(imageURI) 
    {
          var largeImage = document.getElementById('largeImage');
          largeImage.style.display = 'block';
          largeImage.src = imageURI;
          imageForCategory=largeImage.src;
    }
    
    function resOnError(error) {
        alert('Error at resOnError :'+error.code+' ,message :'+error.message);
    }
    function resolveOnSuccess(fileSystem)
    {
    
        alert('on resolve success called');
        var d = new Date(); 
        var n = d.getTime();
        var newFileName = n + ".jpg";
        var myFolderApp = "myFolder";
        var newFile = myFolderApp + "/" + newFileName;
    
       window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function    (fileSys)     {
            alert('root is :' + fileSys.root.name);
    
            fileSys.root.getDirectory("myFolder", {create: true, exclusive:    false},
                function (directory) {
                    alert('directory name :' + directory.name);
                    directory.getFile(newFileName, {create: true}, function (file) {
                        alert("File created.");
                    });
                }, resOnError);
        }, resOnError);
    }
    

    我不知道你到底想做什么。它意味着你想复制一个文件,但你没有告诉任何关于源的信息

    如果要创建文件,请使用以下代码:

        var d = new Date();
        var n = d.getTime();
        var newFileName = n + ".jpg";
        var myFolderApp = "myFolder";
        var newFile = myFolderApp + "/" + newFileName;
    
        window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fileSys) {
            alert('root is :' + fileSys.root.name);
    
            fileSys.root.getDirectory("myFolder", {create: true, exclusive: false},
                function (directory) {
                    alert('directory name :' + directory.name);
                    directory.getFile(newFileName, {create: true}, function (file) {
                        alert("File created.");
                    });
                }, resOnError);
        }, resOnError);
    
        function resOnError(error) {
            alert('Error at resOnError :' + error.code + ' ,message :' + eror.message);
        }
    

    为什么不使用设备就绪事件?您必须这样做,否则您的代码将无法工作。现在由DeviceRady evet调用,仍然没有创建directoryHi Joerg,我试图做的是将一个图像保存到“myfolder”名称目录中,它没有创建图像,也没有将图像复制到我的目录中,代码执行时不会出错。感谢上面的代码正在创建一个目录。但是,您要复制的文件在哪里,这是一个重要的问题。仍然无法创建目录。cordova版本-5.4.1抱歉,我没有更多信息。你在帖子中写道,你给了一些权限。这意味着什么,因为在标准配置中不需要这样做。另一方面:您是否尝试过使用其他设备或模拟器,如genymotion?是的,当我安装文件和文件传输插件时,会自动创建权限。也在不同的设备和模拟器上进行了尝试,但代码仍然无法创建目录。