[ 
https://issues.apache.org/jira/browse/CB-6053?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13904354#comment-13904354
 ] 

Stepan Riha commented on CB-6053:
---------------------------------

All in JavaScript.  This is what my workaround looks like for the getFile 
method:

{code:title=FileProxy.js}
    getFile:function(win,fail,args) {
        var fullPath = args[0];
        var path = args[1];
        var options = args[2];

        // Transfer leading directories from path to fullPath
        path = path.replace(/\//g, "\\");
        var idx = path.lastIndexOf("\\");
        if (idx > 0) {
            var dir = path.substr(0, idx);
            fullPath = fullPath ? fullPath + "\\" + dir : dir;
            path = path.substr(idx + 1);
        }
        ...
{code}

Note that this code doesn't address the case where {{path}} is an absolute path 
(starting with {{'/'}}).  I'm not quite sure what the behavior should be in 
that case - but our code doesn't need support for it.

> DirectoryEntry.getFile() fails for relative paths
> -------------------------------------------------
>
>                 Key: CB-6053
>                 URL: https://issues.apache.org/jira/browse/CB-6053
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: Plugin File, Windows 8
>    Affects Versions: 3.3.0
>         Environment: Windows 8
>            Reporter: Stepan Riha
>            Assignee: Ian Clelland
>
> According to the spec, DirectoryEntry.getFile() is supposed to support 
> specifying a relative path.  However, specifying a relative path (and 
> option.create=false) will cause the method to fail with 
> {{FileError.ENCODING_ERR}}.
> The culprit seems to be following code in FileProxy.getFile() - it tests for 
> invalid *file _name_* characters but should really be testing invalid *file 
> _path_* characters (i.e. it should allow {{/}}).
> {code:title=FileProxy.js}
>                     if (/\?|\\|\*|\||\"|<|>|\:|\//g.test(path)) {
>                         fail && fail(FileError.ENCODING_ERR);
>                         return;
>                     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to