2

申し訳ありませんが、質問全体を変更しました。

特定のファイル(に基づくfileExtension)をあるディレクトリから別のディレクトリに移動したい。

このために、 と の 2 つの関数名を書く予定ListOfFileNamesですMovingFiles

に引数としてandを渡すdirectorypathと、データが返されます。このリストにはファイル パス全体が含まれます。filetypeListOfFileNames()List<File>

MovingFiles()ファイルをソース ディレクトリから宛先に移動します。

次の方法で機能を試しMovingFilesましたが、機能していません。

public void MovingFiles(String SourcePath,String directoryPath,String fileType) throws IOException
{
    ExternalFileExecutions ExternalFileExecutionsObject=new ExternalFileExecutions();
    List<File> fileNames=ExternalFileExecutionsObject.ListOfFileNames(SourcePath, fileType);
    for (int fileIndex = 0; fileIndex < fileNames.size(); fileIndex++) 
    {
        fileNames[fileIndex].renameTo(new File(directoryPath+"/" + fileNames[fileIndex].getName()))
    }
}

List<File>に変換する必要があると思いますList<String>

@tbodt が私の質問に返信しました。彼の回答を関数に統合できませんでした。そのため、質問を変更しました。

もう一度申し訳ありませんが、私の質問全体を変更してください。

ありがとう。

4

5 に答える 5

4

List<String>各要素で対応するファイルの正規パスを取得する場合は、次のようにします。

List<String> list = new ArrayList<String>();
for (File file : finalListNames)
    list.add(file.getCanonicalPath());

それがあなたが望むものでない場合は、明確にしてください。

于 2013-07-23T19:29:33.907 に答える
1

あなたを理解していれば、guavaを使用して、次のように記述します。

    public static List<File> listOfFiles(){
        return Lists.newArrayList(new File("source.txt"), new File("test.txt"));
    }

    public static List<String> listOfFileNames(){
        return Lists.transform(listOfFiles(), new Function<File, String>() {
            public String apply(File input) {
                return input.getAbsolutePath();
            }
        });
    }
于 2013-07-25T10:55:11.720 に答える
0

これが私の答えです。コードで @tbodt コードを使用しました。

public void MovingFiles(String SourcePath,String directoryPath,String fileType) throws IOException
{
    ExternalFileExecutions ExternalFileExecutionsObject=new ExternalFileExecutions();
    List<File> fileNames=ExternalFileExecutionsObject.ListOfFileNames(SourcePath, fileType);
    List<String> list = new ArrayList<String>();
    for (File file : fileNames)
    list.add(file.getCanonicalPath());
    for (int fileIndex = 0; fileIndex < list.size(); fileIndex++)
    {
        File file=new File(list.get(fileIndex));
        file.renameTo(new File(directoryPath+"/",file.getName()));
    }
}
于 2013-07-25T11:25:20.217 に答える
0

あるディレクトリから同じファイル名の別のディレクトリにファイルを移動する

  try{
       File afile =new File("C:\\folder1\\file1.txt");
       if(afile.renameTo(new File("C:\\folder2\\" + afile.getName()))){
        System.out.println("File is moved successful!");
       }else{
        System.out.println("File is failed to move!");
       }

    }catch(Exception e){
        e.printStackTrace();
    }
于 2013-11-28T18:00:05.790 に答える
0

変換できません。しかし、できることは、ファイルリストを反復しながら名前を取得できることです (それが何であれ)。非常に便利なソリューションはLINQであり、選択します

于 2013-07-25T11:03:25.023 に答える