Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 重命名为不用于重命名文件_Java_Android_Android Alertdialog_File Rename_File Management - Fatal编程技术网

Java 重命名为不用于重命名文件

Java 重命名为不用于重命名文件,java,android,android-alertdialog,file-rename,file-management,Java,Android,Android Alertdialog,File Rename,File Management,我正在尝试重命名应用程序中的图像文件。但代码不起作用。 基本上,我希望用户点击重命名按钮,弹出一个带有编辑文本的警告对话框,用户输入图像的新名称,然后选择重命名选项。这应该重命名该文件,但它不执行任何操作。此外,我没有得到任何错误或例外。但是一个警告,“File.renameTo”的结果被忽略。 我怎么修理它 buttonRename.setOnClickListener( new View.OnClickListener(){

我正在尝试重命名应用程序中的图像文件。但代码不起作用。 基本上,我希望用户点击重命名按钮,弹出一个带有编辑文本的警告对话框,用户输入图像的新名称,然后选择重命名选项。这应该重命名该文件,但它不执行任何操作。此外,我没有得到任何错误或例外。但是一个警告,“File.renameTo”的结果被忽略。 我怎么修理它

buttonRename.setOnClickListener(
                        new View.OnClickListener(){
                            public void onClick(View view){
                                AlertDialog.Builder builder2 = new AlertDialog.Builder(PhotosActivity.this);
                                builder2.setMessage("Rename File");
                                final EditText input = new EditText(PhotosActivity.this);
                                LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
                                        LinearLayout.LayoutParams.MATCH_PARENT,
                                        LinearLayout.LayoutParams.MATCH_PARENT);
                                input.setLayoutParams(lp);
                                builder2.setView(input);
                                builder2.setPositiveButton(
                                        "Rename",
                                        new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int id) {

                                                File oldName =new File(al_images.get(int_position).getAl_imagepath().get(position));
                                                String string = input.getText().toString();
                                                boolean success = oldName.renameTo(new File(string));
                                                if(!success){
                                                    Log.v(TAG,"not renamed");
                                                }

                                            }
                                        });

                                builder2.setNegativeButton(
                                        "Cancel",
                                        new DialogInterface.OnClickListener() {
                                            public void onClick(DialogInterface dialog, int id) {
                                                dialog.cancel();
                                            }
                                        });

                                AlertDialog alert12 = builder2.create();
                                alert12.show();

                            }
                        }
                );

您应该首先检查文件是否存在,然后再尝试重命名它,因为:file.renameTo不会引发任何异常,即使调用的对象目标引用了不存在的路径

更好的替代方法是使用java.nioapi来操作文件,因为它提供了与File相同的功能以及更多功能,并且通常表现得更好

你可以写:

Files.move(originalPath, targetPath);

现在,如果originalPath未引用现有路径,将引发异常。

在尝试重命名该文件之前,应首先检查该文件是否存在,因为:file.renameTo即使调用的对象目标引用了不存在的路径,也不会引发任何异常

更好的替代方法是使用java.nioapi来操作文件,因为它提供了与File相同的功能以及更多功能,并且通常表现得更好

你可以写:

Files.move(originalPath, targetPath);

现在,如果originalPath不引用现有路径,将引发异常。

即使我这样做,它也不会引发任何异常,而且它不工作的toojava.nio可从API 26获得,我正在使用API 15@davidxxx即使我这样做,它也不会引发任何异常,它不工作的toojava.nio可从API 26获得,我使用的是API 15@davidxxx