Вот код.
import java.nio.file.*;
import java.io.*;
public class FileCopy{
public static void main(String[] args){
String sourcePath=new String();
String targetPath=new String();
StreamTokenizer token=new StreamTokenizer(
new BufferedReader(
new InputStreamReader(System.in)));
int type=0;
token.wordChars('*','*');
token.wordChars(':',':');
token.wordChars('/','/');
token.wordChars('.','.');
try{
System.out.print("Please type in the source path:");
if((type=token.nextToken())==StreamTokenizer.TT_WORD)
sourcePath=token.sval;
System.out.print("Please type in the target path:");
if((type=token.nextToken())==StreamTokenizer.TT_WORD)
targetPath=token.sval;
}catch(IOException e){
e.printStackTrace();
}
Path source=Paths.get(sourcePath);
Path target=Paths.get(targetPath);
System.out.println("Please enter to create the sourcePath and the files...");
Enter();
Enter();
createDir(source);
String forResolve=new String();
for(int i=1;i<10;i++){
forResolve=new StringBuilder(String.valueOf(i)).append(".txt").toString();
createFile(source.resolve(forResolve));
}
System.out.println("Please enter to create the targetPath and the files...");
Enter();
if(Files.notExists(target))
createDir(target);
try(DirectoryStream<Path> contents=Files.newDirectoryStream(source,"*.*")){
System.out.println("Please enter to start copying...");
Enter();
int count=1;
for(Path temp:contents){
copyFile(source, target.resolve(temp.getFileName().toString()));
count++;
}
System.out.println("Copy files complete...");
}catch(IOException e){
e.printStackTrace();
}
}
static void createFile(Path path){
try{
Files.createFile(path);
}catch(IOException e){
e.printStackTrace();
}
}
static void createDir(Path path){
try{
Files.createDirectories(path);
}catch(IOException e){
e.printStackTrace();
}
}
static void Enter(){
try{
System.in.read();
}catch(IOException e){
e.printStackTrace();
}
}
static void copyFile(Path source, Path target){
try{
Files.copy(source, target);
}catch(IOException e){
e.printStackTrace();
}
}
}
Целью кода является копирование файлов из исходного каталога в целевой каталог. Тем не менее, когда я запускаю программу, я получаю в целевом каталоге несколько папок с такими же именами, что и у файлов в исходном каталоге. Другими словами, если в исходном каталоге есть имя файла «hello.txt», после запуска программы в целевой папке будет имя «hello.txt». Кто-нибудь может сказать мне, что не так с кодом выше? Заранее спасибо.