Я пишу программу, которая использует File I / O для перемещения по каталогу, заданному пользователем, а затем добавляет каталоги в общий связанный список.Написанная мною программа прекрасно работает в Ubuntu, но не работает, когда я пытаюсь использовать ее в Windows.Это довольно длинная программа, но я думаю, что эта часть имеет проблемы:
private Node<Item> currentNode = new Node<Item>();
public void traverse(File fileObject)
{
File allFiles[] = fileObject.listFiles();
for(File aFile: allFiles){
System.out.println(aFile.getName()); /* debugging */
recursiveTraversal(aFile); /* Line 34 */
}
}
public void recursiveTraversal(File fileObject){
Node<Item> newNode = new Node<Item>();
currentNode.addChild(newNode);
currentNode = newNode;
if (fileObject.isDirectory()){
newNode.setData(new Item());
File allFiles[] = fileObject.listFiles();
for(File aFile : allFiles){ /* This is line 48 */
recursiveTraversal(aFile);
}
}else if (fileObject.isFile()){
newNode.setData(new Item());
}
currentNode = newNode.getParent();
}
Когда я использую ее в Linux, я могу дать ей что-то вроде /home/matt/Documents
, и она работает, но когда я пытаюсьWindows, используя G:\\Users\\Matt\\Documents
это ошибки.Оператор print, который я добавил, на самом деле распечатывает файлы в папке, но что-то с остальной частью программы не работает:
java.lang.NullPointerException
at FileTraverse.recursiveTraversal(FileTraverse.java:48)
at FileTraverse.traverse(FileTraverse.java:34)
at DirectoryMain$ClickAction.actionPerformed(DirectoryMain.java:103)
...
После этого возникает множество ошибок, связанных с Swing GUI этой программы.уходит, но я не думаю, что это связано с чем-либо.
РЕДАКТИРОВАТЬ: Добавлено в номера строк, которые соответствуют трассе.