0

现在正在开发一个项目,我需要在 sdcard 中创建一个可以执行的文件夹。我还需要根据需要隐藏/取消隐藏它。代码在模拟器上运行良好,但在设备上运行不正常这是我的代码出了什么问题?

    public class FolderCreate extends MIDlet {
    private Form form;
    private Display display;
    FileConnection fc;
    String path;

        public void startApp() {        

        form = new Form("Hello World");
        String msg = "Hello World!!!!!!!";
        form.append(msg);
        display = Display.getDisplay(this);
        display.setCurrent(form);
     System.out.println("WWWW");          
        try {
            path = System.getProperty("fileconn.dir.memorycard");
            System.out.println("Path : "+path+"/sample");
                fc = (FileConnection)Connector.open(path+"/ABCD/");
                if(!fc.exists())
                {
                   fc.mkdir();
                   System.out.println("directory created");                   
                }               

        } catch (IOException e) {
                // TODO Auto-generated catch block
                //System.out.println("ERROR "+e.getMessage());
            Alert alert = new Alert("Alert");
            alert.setString(e.getMessage());
            display.setCurrent(alert);
        }
        try 
        {
            //fc = (FileConnection)Connector.open(path+"/sample/");
            if(fc.isHidden())
                {
                    fc.setHidden(false);
                }
            else{
                    fc.setHidden(true);
            }
         fc.close();
        } 
        catch (Exception e) 
        {
             Alert alert = new Alert("Alert2");
            alert.setString(e.toString());
            display.setCurrent(alert);
        }




    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
        System.out.println("Destroyed");
        notifyDestroyed();
    }
}

我得到的错误是java.io.IOException::文件不存在

4

2 回答 2

0

检查是否path"file://". 如果没有,请添加后缀。

path = System.getProperty("fileconn.dir.memorycard");
if (path != null && !path.startsWith("file://")) {
    path = "file://" + path;
}
于 2013-07-05T14:35:51.500 回答
-1

我认为您在以下行中犯了错误,

path = System.getProperty("fileconn.dir.memorycard");

当您使用手机和 SD 卡时,您应该使用e:驱动器来指代 SD 卡,如下所示,

path = file:///e:/<folder-name>/
于 2013-07-05T13:16:29.690 回答