2014-01-31 57 views
2

我想創建新的文件,而是會創建目錄......我嘗試了許多檢查和方式。在我的應用程序的不同部分創建新的文件工作正常...目錄的創建,而不是文件

public void copyDatabaseFromAssets() throws IOException { 
      InputStream inputStream = app.getAssets().open(Static.DATABASE_FILE_NAME); 
      File directory = new File(getInternalDatabaseFolder()); 
      boolean exist = directory.exists(); 
      boolean isDirecotry = directory.isDirectory(); 
      boolean isFile = directory.isFile(); 
      if(!directory.exists())directory.mkdirs(); 
      File targetFile = new File(directory.getAbsolutePath(),Static.DATABASE_FILE_NAME); 
      boolean exist2 = targetFile.exists(); 
      boolean isDirecotry2 = targetFile.isDirectory(); 
      boolean isFile2 = targetFile.isFile(); 
      boolean created = targetFile.createNewFile(); 
      FileTool.copyDataBaseFromAssets(inputStream,targetFile); 
     } 

調試 - >

directory = /data/data/***/databases 
exist = true  
isDirectory = true 
isFile = false 

targetFile = /data/data/***/databases/database.sqlite 
exist2 = true  
isDirectory2 = true 
isFile2 = false  
created = false 

錯誤 - >

java.io.FileNotFoundException: /data/data/***/databases/database.sqlite: open failed: EISDIR (Is a directory) 
+0

您確定您正在查看'isDirecotry2'和'isFile2'嗎? –

+0

嘗試移除'boolean created = targetFile.createNewFile();'根據您在'copyDataBaseFromAssets'中使用的內容,文件可能會自動創建。 –

+0

我編輯的問題,調試很好 –

回答

1

exist2指示它已經存在的nd isDirectory2它是一個文件夾。嘗試刪除database.sqlite並再次運行相同的代碼

+0

我已經創建了一個文件,然後我忘了刪除這個不好的目錄.. thx給你,以及 –

相關問題