gpt4 book ai didi

android - 将文件从系统存储(/data/data...)复制到外部存储

转载 作者:行者123 更新时间:2023-11-29 18:20:51 26 4
gpt4 key购买 nike

我想从/data/data...复制一个文件到外部SD卡!但是,我发现了这个问题:日志消息:04-04 12:01:19.271: DEBUG/Carburant(9623):/username.usercar.settings.dat(没有这样的文件或目录)

我想我不能在没有“额外”代码的情况下简单地访问这个文件。这是我的代码(必要的行):

File sdCard = Environment.getExternalStorageDirectory();
File dir = new File (sdCard.getAbsolutePath() + "/Carburant/");
dir.mkdirs();
copyfile(nom,sdCard.getAbsolutePath() + "/Carburant/storeddata.dat");

public Import(Context context,String nom) {
this.context = context;
this.nom=nom;
}

调用函数的行:

case R.id.exporter:
final SharedPreferences preferences = PreferenceManager
.getDefaultSharedPreferences(context);
String fileName = getResources().getString(R.string.fileName);
fileDir = "" + preferences.getString("login", "") + "."+ preferences.getString("marque", "") + ".";
Import myImport = new Import(this,fileDir+fileName);
myImport.transfer();
return true;

Android Manifest(必要代码):

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="carburant.android.com"
android:versionCode="1" android:versionName="0.1">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-sdk android:minSdkVersion="8" />

复制文件功能:

private void copyfile(String srFile, String dtFile){
try{
File f1 = new File(srFile);
File f2 = new File(dtFile);
InputStream in = new FileInputStream(f1);
OutputStream out = new FileOutputStream(f2);

byte[] buf = new byte[4096];
int len;
while ((len = in.read(buf)) > 0){
out.write(buf, 0, len);
}
in.close();
out.close();
Toast.makeText(context, "Export effectué", Toast.LENGTH_SHORT).show();
}
catch(FileNotFoundException ex){
Toast.makeText(context, "File Not found", Toast.LENGTH_SHORT).show();
String x=ex.getMessage();
Log.d("Carburant", x);
}
catch(IOException e){
Toast.makeText(context, "Echec", Toast.LENGTH_SHORT).show();
}
}

那么,错过了什么?谢谢。

最佳答案

要让您的文件位于"file"目录(假设其名称为 settings.dat),请使用以下方法:

String filePath = this.getFilesDir().getAbsolutePath() + File.separator + "settings.dat";
Import myImport = new Import(this,filePath);

如果文件本身是原始资源,请遵循the answer to this question复制它。

(确保您有权写入外部存储...)

关于android - 将文件从系统存储(/data/data...)复制到外部存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5545971/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com