Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-12901

Android: Ti.FileSystemProxy interprets resourceDir as a File

    Details

      Description

      While testing New iOS feature for parity with Android I noticed that resources "Directory" is interpreted as a "File" on Android.

      Test steps:
      1.Run the following code

      /*jslint maxerr:1000 */
       
      //Test if the resources folder is a directory.
      var resourceDir = Titanium.Filesystem.getFile(Titanium.Filesystem.resourcesDirectory);
      Ti.API.info('resourceDir ' + resourceDir);
      Ti.API.info('resourceDir nativePath ' + resourceDir.nativePath);
      Ti.API.info('resourceDir isDirectory ' + resourceDir.isDirectory());
      Ti.API.info('resourceDir isFile ' + resourceDir.isFile());
       
       
      var newDir = Titanium.Filesystem.getFile(Titanium.Filesystem.applicationDataDirectory,'mydir');
      if(!newDir.exists()){
        Ti.API.info("Created mydir: " + newDir.createDirectory());  
      }
       
      var newFile = Titanium.Filesystem.getFile(newDir.nativePath,'newfile.txt');
      newFile.write("\nText appended via write()", true);
       
      Ti.API.info('newdir ' + newDir);
      Ti.API.info('newdir nativePath ' + newDir.nativePath);
      Ti.API.info('newdir isDirectory ' + newDir.isDirectory());
      Ti.API.info('newdir isFile ' + newDir.isFile());
       
       
      Ti.API.info('newFile ' + newFile);
      Ti.API.info('newFile nativePath ' + newFile.nativePath);
      Ti.API.info('newFile isDirectory ' + newFile.isDirectory());
      Ti.API.info('newFile isFile ' + newFile.isFile());
       
      Ti.API.info('End Test');
       
      Ti.API.info('Now open a window so we can test on device easier');
       
      // Create a simple window to show our results
      (function(){
      	
      	var win = Ti.UI.createWindow({
      		backgroundColor:'#fff',layout:'vertical'
      	});
       
      	win.add(Ti.UI.createLabel({
      		top:10, text:'resourceDir isDirectory ' + resourceDir.isDirectory()
      	}));
      	
      	win.add(Ti.UI.createLabel({
      		top:10, text:'resourceDir isFile ' + resourceDir.isFile()
      	}));
      		
      	win.add(Ti.UI.createLabel({
      		top:10, text:'newdir isDirectory ' + newDir.isDirectory()
      	}));
      	
      	win.add(Ti.UI.createLabel({
      		top:10, text:'newdir isFile ' + newDir.isFile()
      	}));
       
      	win.add(Ti.UI.createLabel({
      		top:10, text:'newFile isDirectory ' + newFile.isDirectory()
      	}));
      	
      	win.add(Ti.UI.createLabel({
      		top:10, text:'newFile isFile ' + newFile.isFile()
      	}));
       
      					
      	win.open();	
      	
      })();
       
      

      Actual result:
      Android - resourceDir isFile true
      iOS - resourceDir isFile false

      Expected:
      resourceDir isFile false

        Attachments

        1. Android.png
          Android.png
          31 kB
        2. iPhone.png
          iPhone.png
          49 kB
        3. logcat.txt
          0.8 kB

          Issue Links

            Activity

              People

              • Assignee:
                pwang Ping Wang
                Reporter:
                oromero Olga Romero
                Reviewer:
                Allen Yeung
              • Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Backbone Issue Sync

                  • Titanium SDK/CLI <> Titanium Mobile
                    Synced with:
                    TIMOB-15775
                    Sync status:
                    ERROR
                    Last received:
                    Last sent:

                    Git Source Code