pea*_*mak 7 directory android copy file
我正在使用以下代码并使用apache commons库将一个文件(临时音频文件)从源文件夹复制到目标文件夹TT_1A.
button1_save.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String sourcePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TT/tt_temp.3gp";
File source = new File(sourcePath);
String descPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TT/tt_1A.3gp";
File desc = new File(descPath);
try
{
FileUtils.copyDirectory(source, desc);
}
catch (IOException e)
{
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
http://commons.apache.org/proper/commons-io/download_io.cgi
我已经使用了这个FileUtils函数来复制临时文件并粘贴到desc文件夹作为TT_1A.然而,logcat报告错误,具体如下:
10-17 00:41:04.260: E/AndroidRuntime(27450): FATAL EXCEPTION: main
10-17 00:41:04.260: E/AndroidRuntime(27450): java.lang.NoClassDefFoundError: org.apache.commons.io.FileUtils
10-17 00:41:04.260: E/AndroidRuntime(27450): at com.abc.abc.TT_details_canton$14.onClick(TT_details_canton.java:575)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.view.View.performClick(View.java:4223)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.view.View$PerformClick.run(View.java:17275)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.os.Handler.handleCallback(Handler.java:615)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.os.Handler.dispatchMessage(Handler.java:92)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.os.Looper.loop(Looper.java:137)
10-17 00:41:04.260: E/AndroidRuntime(27450): at android.app.ActivityThread.main(ActivityThread.java:4898)
10-17 00:41:04.260: E/AndroidRuntime(27450): at java.lang.reflect.Method.invokeNative(Native Method)
10-17 00:41:04.260: E/AndroidRuntime(27450): at java.lang.reflect.Method.invoke(Method.java:511)
10-17 00:41:04.260: E/AndroidRuntime(27450): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
10-17 00:41:04.260: E/AndroidRuntime(27450): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
10-17 00:41:04.260: E/AndroidRuntime(27450): at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
整个晚上我一直坚持这个.有没有办法复制文件?
pea*_*mak 24
经过以下方式修改后,它运行良好:
button1_save.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
String sourcePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/tt_temp.3gp";
File source = new File(sourcePath);
String destinationPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/TongueTwister/tt_1A.3gp";
File destination = new File(destinationPath);
try
{
FileUtils.copyFile(source, destination);
}
catch (IOException e)
{
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在API level 29中,android添加了FileUtils类,该类具有复制功能。
使用此代码复制您的文件:-
public void copyFile(File source, File destination) throws IOException {
FileUtils.copy(new FileInputStream(source), new FileOutputStream(destination));
}
Run Code Online (Sandbox Code Playgroud)
如果Android Studio没有找到FileUtils类,则意味着您的compileSdkVersion低于29,在这种情况下,您必须升级您的compileSdkVersion。
要升级,请转到应用程序级 build.gradle 文件并将旧的compileSdkVersion替换为 29
像这样
compileSdkVersion 29
Run Code Online (Sandbox Code Playgroud)
有关FileUtils类的更多信息,请访问 Android 开发者网站 https://developer.android.com/reference/android/os/FileUtils
| 归档时间: |
|
| 查看次数: |
26729 次 |
| 最近记录: |