将文件从文件阵列复制到目录

用户名

我正在尝试复制文件列表中的文件。当用户长按列表中的项目时,我要复制选定的文件。

    public class MainActivity extends ListActivity {

private File file;
private List<String> myList;

String rootsd = Environment.getExternalStorageDirectory().toString();
String old = "/Android/data/co.vine.android/cache/videos";
String dirNameSlash = "/videos/";
String path = Environment.getExternalStorageDirectory() + dirNameSlash;
String newDir = "/Saved";
String olddir2 = new String( rootsd + old );
String newdir2 = new String( rootsd + newDir);
File temp_dir = new File(newDir);


public void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);

    ListView lv = getListView();
    lv.setOnItemLongClickListener(new OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> arg0, View arg1,int row, long arg3) {

            String item = (String) getListAdapter().getItem(row);
           // CopyFile
            Toast.makeText(getApplicationContext(), "File has been copied", Toast.LENGTH_LONG).show();

            return true;
        }
    });

    if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
        Log.d("MyApp", "No SDCARD");
} else {
    File directory = new File(Environment.getExternalStorageDirectory()+File.separator+"Saved");
    directory.mkdirs();

}

    myList = new ArrayList<String>();   

    String root_sd = Environment.getExternalStorageDirectory().toString();
    file = new File( root_sd + "/videos" ) ;       
    File list[] = file.listFiles();

    for( int i=0; i< list.length; i++)
    {
            myList.add( list[i].getName() );
    }

    setListAdapter(new ArrayAdapter<String>(this,
            R.layout.row, myList )); 
}

protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    String item = (String) getListAdapter().getItem(position);
    Intent intentToPlayVideo = new Intent(Intent.ACTION_VIEW);
    intentToPlayVideo.setDataAndType(Uri.parse(path + item), "video/*");
    startActivity(intentToPlayVideo);
}

@Override
public void onBackPressed() {
            MainActivity.this.finish();
    }

任何帮助都会很棒。用户选择的所有文件将保存到同一目录。我需要帮助确定用户选择的文件,然后将其复制。谢谢!

这个

我建议您使用FileChanel,效率更高,速度更快。例:

 try {
            String root_sd = Environment.getExternalStorageDirectory().toString();
            String theFile = root_sd + "/" + (String) getListAdapter().getItem(row);
            File file = new File(theFile);
            FileInputStream source= new FileInputStream(file);
            String targetDirectory = Environment.getExternalStorageDirectory().toString();
            FileOutputStream destination = new FileOutputStream(targetDirectory + "/videos/" + file.getName);
            FileChannel sourceFileChannel = source.getChannel();
            FileChannel destinationFileChannel = destination.getChannel();
            long size = sourceFileChannel.size();

            sourceFileChannel.transferTo(0, size, destinationFileChannel);


        } catch (Exception ex) {
            Logger.getLogger(Borrar.class.getName()).log(Level.SEVERE, null, ex);
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将文件列表复制到目录

来自分类Dev

将文件复制到目录?

来自分类Dev

将文件复制到最新目录

来自分类Dev

无法将目录文件复制到其他目录

来自分类Dev

将目录文件复制到当前目录

来自分类Dev

无法将目录文件复制到其他目录

来自分类Dev

将html文件从源目录复制到构建目录

来自分类Dev

automake:如何将文件复制到构建目录?

来自分类Dev

使用系统将文件复制到工作目录

来自分类Dev

使用PowerShell将文件从tfs versioncontrol复制到目录

来自分类Dev

Bash:将文件复制到最新目录

来自分类Dev

MSBuild使用通配符将文件复制到目录路径

来自分类Dev

将exe文件复制到Qt构建目录

来自分类Dev

将syslog文件复制到Linux中的新目录

来自分类Dev

使用PowerShell将文件从tfs versioncontrol复制到目录

来自分类Dev

如何使用ant将文件复制到特定目录?

来自分类Dev

GruntJS仅将插件文件复制到目录中

来自分类Dev

将文件复制到子目录

来自分类Dev

使用cp将单个文件复制到多个目录

来自分类Dev

将文件复制到目录时自动运行命令

来自分类Dev

将文件复制到创建的目录中

来自分类Dev

将文件从网络复制到本地目录

来自分类Dev

将exe文件复制到Qt构建目录

来自分类Dev

如何将随机文件复制到目录

来自分类Dev

如何将文件复制到子目录?

来自分类Dev

将目录结构复制到枚举的文件夹

来自分类Dev

将文件从ROOT复制到主目录

来自分类Dev

将特定文件复制到其他目录

来自分类Dev

通过 Gradle 将文件复制到构建目录