FileVisitor с использованием класса Path - как "вернуть" структуру каталогов?
Я пишу код списка каталогов для системы клиент-сервер, используя класс Path Java. Я создал собственный класс для того, что работает нормально. Однако я хочу отобразить результаты на клиенте, а не на сервере, что я не могу понять, как. Я довольно новичок в Java, поэтому, пожалуйста, извините, если это глупый вопрос.
Будет ли работать что-то вроде возврата объекта fileobj клиенту и печати его там? потому что я считаю, что структура каталогов хранится в этом объекте?
Я делаю это через RMI и следующий код реализации:
//this method is called from Client and is getting executed at Server side.
public void DoDir(String dirpath)
{
Path fileobj = Paths.get(dirpath);
DirListing visitor = new DirListing();
try{
Files.walkFileTree(fileobj, visitor);
//Just a thought:will returning fileobj and printing it on Client work?
//If yes, how do I override toString here?
}
catch(IOException e){
e.printStackTrace();
}
Это обычный класс:
class DirListing extends SimpleFileVisitor<Path>
{
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc)
throws IOException
{
System.out.println("Just visited " + dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
throws IOException
{
System.out.println("About to visit " + dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
throws IOException
{
if (attrs.isRegularFile())
{
System.out.print("Regular File: ");
}
System.out.println(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc)
throws IOException
{
System.err.println(exc.getMessage());
return FileVisitResult.CONTINUE;
}
}