0

タイトルが示すように、ファイルの名前をバッチで変更したいが、ファイル名の最初の 4 文字を保持したい。

このオープン ソースのbatchfilerenametoolを個人用に変更しようとしています。助言がありますか?

ファイルの名前を変更するコードを追加しました。それはfilename = filename + generatedSequence;私がそれを追加する必要がある場所であると確信していますが、ファイル名の最初の4文字だけを指定するのは何ですか?

//this is affected by the RenameOption, if Rename has something then only we RENAME
if(cbxRename.isSelected() == true){
   fileName = Rename + generatedSequence;   //the fileName will change.
}
else {
   //if Rename has nothing, but the txtSequence has some Value, we take it to the naming too
   fileName = fileName + generatedSequence;
}

以下は、コードの名前変更部分です。

private void renameFile(){

        boolean operationResult = false;
        boolean overallResult = true;
        int failCount = 0;

        /* the operation of this part is ensured by the chooseDirectory()
         * WE get the list of files in the directory
         * get the conditions set by users
         * and perform the file rename operation.
         */

        //Let's get all the information from user
        String[] fileList = directory.list();  //the list of files in the directory
        String Prefix = txtPrefix.getText();
        String Rename = txtRename.getText();
        String Suffix = txtSuffix.getText();
        String digits = (String) cboSequence.getSelectedItem();
        int StartingNum;
        String generatedSequence;
        File oldFile;

        //let's call the output frame
        if(cbxOutput.isSelected() && OUTPUT_ON == false){
            buildOutput();
            OUTPUT_ON = true;
        }




        //display the list of files and readability of each file
        for(int i = 0; i < fileList.length; i++){   
            oldFile = new File(directory.getPath()+"/"+ fileList[i]);
            String readability = fileList[i] +" - readable?: "+oldFile.canRead();
            System.out.println(readability);

            if(OUTPUT_ON)
                txaOutput.append("\n"+readability);
        }

        for(int i = 0; i < fileList.length; i++){

            /* get the file extension that we need, and form a new name, 
             * we would check if the Ignore File Extension is selected
             */
            oldFile = new File(directory.getPath()+"/"+ fileList[i]);

            String fileExtension;

            if(cbxIgnoreExtension.isSelected() == true ){
                fileExtension = "";
            }
            else
                fileExtension = getFileExtension(fileList[i]);

            //this part get the original filename       
            String fileName = getFileName(fileList[i]);



            String inputInfo = "The input filename->"+ fileList[i] + "\nfile name->" + fileName + "\nextension->" + fileExtension;   
            System.out.println(inputInfo);

            if(OUTPUT_ON)
                txaOutput.append("\n"+inputInfo);



            /* generate sequence for the Name
             *if the digits selection is NONE, we ignore it
             */
            if(digits.equals("None") == true){
                generatedSequence = "";
            }
            else{
                StartingNum = Integer.parseInt(txtSequence.getText());
                generatedSequence = nameSequence(StartingNum + i, digits);
            }




            //this is affected by the RenameOption, if Rename has something then only we RENAME
            if(cbxRename.isSelected() == true){
                fileName = Rename + generatedSequence;   //the fileName will change.
            }
            else{
                //if Rename has nothing, but the txtSequence has some Value, we take it to the naming too
                fileName = fileName + generatedSequence;
            }


            //the New File Name
            String newFileName = Prefix + fileName + Suffix + fileExtension;
            String tentativeName = "new Filename will be ->"+newFileName+"\n";
            System.out.println(tentativeName);

            if(OUTPUT_ON)
                txaOutput.append("\n"+tentativeName);




            // ! Perform the file rename, if the Experimental Mode is not selected
            if(cbxExperiment.isSelected() == false){

                operationResult = oldFile.renameTo(new File(directory.getPath()+"/"+newFileName));
                String renameResult = "\t*Rename successfully?: " + operationResult+"\n\n";
                System.out.println(renameResult);
                    if(operationResult == false)
                        failCount++;

                    if(OUTPUT_ON)
                        txaOutput.append("\n"+renameResult);

                //make up the overall result
                overallResult = (operationResult && overallResult);
            }

        }

        if(cbxExperiment.isSelected() == false){
            System.out.println("Overall Result: "+overallResult);
            if(overallResult)
                JOptionPane.showMessageDialog(null, "All files renamed successfully!");
            else
                JOptionPane.showMessageDialog(null, "File renamed with "+ failCount+ " failure(s)");
        }//end if

    }//end renameFile
4

0 に答える 0