X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/blobdiff_plain/e52df4a59e244f9665c06211f43c5a1628348f0b..e35e32ad52f3964a44f0f404adf699e0d18502de:/src/com/owncloud/android/utils/FileStorageUtils.java diff --git a/src/com/owncloud/android/utils/FileStorageUtils.java b/src/com/owncloud/android/utils/FileStorageUtils.java index 47a46d2c..e300a5e2 100644 --- a/src/com/owncloud/android/utils/FileStorageUtils.java +++ b/src/com/owncloud/android/utils/FileStorageUtils.java @@ -23,6 +23,11 @@ package com.owncloud.android.utils; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -41,7 +46,6 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.net.Uri; -import android.os.Environment; import android.os.StatFs; import android.webkit.MimeTypeMap; @@ -58,8 +62,9 @@ public class FileStorageUtils { public static final String getSavePath(String accountName) { - File sdCard = Environment.getExternalStorageDirectory(); - return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/" + Uri.encode(accountName, "@"); +// File sdCard = Environment.getExternalStorageDirectory(); + + return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + Uri.encode(accountName, "@"); // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B } @@ -68,14 +73,13 @@ public class FileStorageUtils { } public static final String getTemporalPath(String accountName) { - File sdCard = Environment.getExternalStorageDirectory(); - return sdCard.getAbsolutePath() + "/" + MainApp.getDataFolder() + "/tmp/" + Uri.encode(accountName, "@"); + return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + "tmp" + File.separator + Uri.encode(accountName, "@"); // URL encoding is an 'easy fix' to overcome that NTFS and FAT32 don't allow ":" in file names, that can be in the accountName since 0.1.190B } @SuppressLint("NewApi") public static final long getUsableSpace(String accountName) { - File savePath = Environment.getExternalStorageDirectory(); + File savePath = new File(MainApp.getStoragePath()); if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) { return savePath.getUsableSpace(); @@ -87,7 +91,7 @@ public class FileStorageUtils { } public static final String getLogPath() { - return Environment.getExternalStorageDirectory() + File.separator + MainApp.getDataFolder() + File.separator + "log"; + return MainApp.getStoragePath() + File.separator + MainApp.getDataFolder() + File.separator + "log"; } public static String getInstantUploadFilePath(Context context, String fileName) { @@ -365,13 +369,11 @@ public class FileStorageUtils { public static long getFolderSize(File dir) { if (dir.exists()) { long result = 0; - File[] fileList = dir.listFiles(); - for(int i = 0; i < fileList.length; i++) { - if(fileList[i].isDirectory()) { - result += getFolderSize(fileList[i]); - } else { - result += fileList[i].length(); - } + for (File f : dir.listFiles()) { + if (f.isDirectory()) + result += getFolderSize(f); + else + result += f.length(); } return result; } @@ -421,4 +423,36 @@ public class FileStorageUtils { } } + public static boolean copyFile(File src, File target) { + boolean ret = true; + + InputStream in = null; + OutputStream out = null; + + try { + in = new FileInputStream(src); + out = new FileOutputStream(target); + byte[] buf = new byte[1024]; + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + } catch (IOException ex) { + ret = false; + } finally { + if (in != null) try { + in.close(); + } catch (IOException e) { + e.printStackTrace(System.err); + } + if (out != null) try { + out.close(); + } catch (IOException e) { + e.printStackTrace(System.err); + } + } + + return ret; + } + }