html - Phonegap 文件传输错误

标签 html cordova filesystems

我正在尝试让我的 PhoneGap 应用程序在移动设备上创建一个目录,但我一直遇到同样的错误,这些错误包括:

ENCODING_ERR - 5 - URL 格式错误。确保 URL 完整且有效。

PATH_EXISTS_ERR - 12 - 相同路径的文件或目录已存在。

INVALID_MODIFICATION_ERR - 9 - 不允许请求的修改。例如,应用可能会尝试将一个目录移动到它自己的子目录中,或者在不更改其名称的情况下将文件移动到其父目录中。

$( document ).on( 'click', '#A2', function () {
    downloadPhoto();
} );

function downloadPhoto() {
        alert( "Downloading" );
        window.requestFileSystem( LocalFileSystem.PERSISTENT, 0, function systemSuccess( dirEntry ) {
            alert( "Download about to begin" );
            dirEntry.root.getDirectory( 'thisfilenamewillneverexist', { create: true }, function ( fileSystem  ) {
                alert( fileSystem );
            }, errorHandler );
        }, errorHandler );
    }

function errorHandler( e ) {
    var msg = '';
    switch ( e.code ) {
        case FileError.ENCODING_ERR:
            msg = 'ENCODING_ERR';
            break;
        case FileError.INVALID_MODIFICATION_ERR:
            msg = 'INVALID_MODIFICATION_ERR';
            break;
        case FileError.INVALID_STATE_ERR:
            msg = 'INVALID_STATE_ERR';
            break;
        case FileError.NO_MODIFICATION_ALLOWED_ERR:
            msg = 'NO_MODIFICATION_ALLOWED_ERR';
            break;
        case FileError.NOT_FOUND_ERR:
            msg = 'NOT_FOUND_ERR';
            break;
        case FileError.NOT_READABLE_ERR:
            msg = 'NOT_READABLE_ERR';
            break;
        case FileError.PATH_EXISTS_ERR:
            msg = 'PATH_EXISTS_ERR';
            break;
        case FileError.QUOTA_EXCEEDED_ERR:
            msg = 'QUOTA_EXCEEDED_ERR';
            break;
        case FileError.SECURITY_ERR:
            msg = 'SECURITY_ERR';
            break;
        case FileError.TYPE_MISMATCH_ERR:
            msg = 'TYPE_MISMATCH_ERR';
            break;
        default:
            msg = 'Unknown Error';
            break;
    };
    alert( 'Error: ' + msg );
}

如果我第一次创建该文件名,为什么或如何已经存在?

最佳答案

设法修复了错误,事实证明您在新创建的目录中创建文件时不需要包含“root”。

其他人遇到这个问题或类似问题的代码:

var folderDir;
var fileDir;
var FolderName = "OSMaps";

$( document ).on( 'click', '#A2', function () {
    window.requestFileSystem( LocalFileSystem.PERSISTENT, 0, downloadPhoto, errorHandler);
} );

function downloadPhoto(fileSystem) {
    fileSystem.root.getDirectory( FolderName, { create: true, exclusive: false }, 
    function ( dirEntry ) {
        folderDir = dirEntry;
->      folderDir.getFile( 'test.jpg', { create: true, exclusive: false }, <-
        function ( fileEntry ) {
                fileDir = fileEntry;
        }, errorHandler );
}, errorHandler );

关于html - Phonegap 文件传输错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18612860/

相关文章:

cordova - 如何在Phonegap应用程序IOS和Android中使用Sqlite数据库

javascript - Cordova 插件覆盖默认的 TypeScript 命名空间

android - 插件 Phonegap 电源管理

c++ - 如何将 'const boost::filesystem2::path' 变成 'const char *' ?

java - 在 java 中识别磁盘类型的文件系统格式,如 ntfs、fat16/32 或 ext

html - 在 "〒"中显示 div

HTML5 如何在名称属性过时时跳过导航

html - Angular 2 : Date Format Textbox ngModel doesn't work

html - 在 html5 中使用 ip/port 制作音频流

linux - ext4 卷的根目录上的 fsync 会刷新所有子卷吗?