Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395

Листинг файловой системы

31.03.2015, 18:22. Показов 1505. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне надо проиндексировать файлов. систему при помощи интерфейса (SWING, AWT). Хотелось бы знать возможно ли в одном пакете совместить нижеприведеный код файла с кодом другого файла где разместить свинговскую Jtable.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package listing;
import java.io.File;
public class Filewalk {
public void walk( String path ) {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
if ( f.isDirectory() ) {
walk( f.getAbsolutePath() );
}
else {
System.out.println( "File:" + f.getAbsoluteFile()+ "" + f.length());
}
}
}
public static void main(String[] args) {
Filewalk fw = new Filewalk();
File [] disks = File.listRoots();
for ( File d : disks )
fw.walk(d.toString());
}
}
Кроме того мне надо потом записать эти файлы с главными свойствами в XML. Возможно ли в этом случае вместо
System.out.println( "File:" + f.getAbsoluteFile()+ "" + f.length()); -- создать вектор и помещать туда свойства файлов для отображение в Jtable. File1 fv=new File1(f.getAbsoluteFile(),f.length());
Vector<File1> vs.add(fs); а само описание класа разместить в этом же пакете внизу после класа листинга (волкера) --
Java
1
2
3
4
5
class File1 { 
File1 (String path1, int size1) 
{ this.path=path1; this.size=size1;};
String path;
int size;}
Добавлено через 59 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
package listing;
import java.io.File;
import java.util.Vector;
public class Filewalk {
public void walk( String path ) {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
if ( f.isDirectory() ) {
walk( f.getAbsolutePath() );
}
else {
File1 fv=new File1(f.getAbsoluteFile(),f.length()); //
Filewalk.java:14: cannot find symbol
symbol  : constructor File1(java.io.File,long)
location: class listing.File1
File1 fv=new File1(f.getAbsoluteFile(),f.length());//
Vector<File1> vs= new Vector<File1>();
vs.add(fv);
}
}
}
public static void main(String[] args) {
Filewalk fw = new Filewalk();
File [] disks = File.listRoots();
for ( File d : disks )
fw.walk(d.toString());
System.out.println("Size of Vector" + vs.size()); //Filewalk.java:25: cannot find symbol
symbol  : variable vs
location: class listing.Filewalk
System.out.println("Size of Vector" + vs.size());//
}
}
class File1 { 
File1 (String path1, int size1) 
{ this.path=path1; this.size=size1;}
String path;
int size;}
--- Не пойму в чем здесь ошибка что не "могут найти символ" --но наверное дело в том что два разных класа, но если строчку о размере вектора разместить сразу после цыкла инициализации вектора то таже ошибка. При создание файла1 может быть тип не совпадает -- getAbsolutepath не возвращает тип стринг?



Добавлено через 14 секунд
В первой ошибке там тип не int a long, во второй я использовал вложенные класы -- но чтобы ждать пока запишется весь вектор свойств файлов для определения обьему уж лутше записывать этот вектор в сериализированый файл. Но не знаю, так как програмирования опыта мало -- достаточно ли будет создать третий клас для записи файла, и обозначить в методе Walk() возможность записи в этот файл. Или надо сперва записать весь вектор а потом лиш записывать в файл.ser с нуля.
package listing;
import java.io.File;
import java.util.Vector;
public class Filewalk {
Vector<File1> vs= new Vector<File1>();
public void walk( String path ) {
File root = new File( path );
File[] list = root.listFiles();
if (list == null) return;
for ( File f : list ) {
if ( f.isDirectory() ) {
walk( f.getAbsolutePath() );
}
else {
File1 fv=new File1(f.getAbsoluteFile().toString(),f.l ength());
vs.add(fv);
}
}
}
public static void main(String[] args) {
Filewalk fw = new Filewalk();
File [] disks = File.listRoots();
for ( File d : disks )
fw.walk(d.toString());
File1 a=(File1)fw.vs.get(1);
System.out.println("Size of Vector" + fw.vs.size());
}
}
class File1 {
File1 (String path1, long size1)
{ this.path=path1; this.size=size1;}

String path;
long size;}
//
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.io.WinNTFileSystem.list(Native Method)
at java.io.File.list(File.java:973)
at java.io.File.listFiles(File.java:1051)
at listing.Filewalk.walk(Filewalk.java:8)
at listing.Filewalk.walk(Filewalk.java:12)
at listing.Filewalk.walk(Filewalk.java:12)
at listing.Filewalk.walk(Filewalk.java:12)
at listing.Filewalk.walk(Filewalk.java:12)
at listing.Filewalk.main(Filewalk.java:24)
--вот и наверное главная проблема -- переполнение памяти. Если это утечка памяти при создание каждого раза файла -- то в ждава нету деструктора чтобы уничтожать созданные каждый раз конструктором обьекты File1, если переполнение через большой файл вектора то я не знаю как с этим справиться кроме увеличение вирт. памяти. Потом может лутше сразу передавать значение свойств файлов в Jtable в одном файле, или обойтись без этого и записывать данные в xm??

Добавлено через 12 минут
Кроме этого для нормального отображение мне надо создать и колонку с номером файла начиная с 1.
File1 (String path1, long size1)
{ this.number=nextInt(что то вроде этого??чтобы передавалось значение с номера предыдущего файла +1 -- в for (int i; i<size; i++)--было бы попроще); this.path=path1; this.size=size1;}
int number;
String path;
long size;}
--Что нету здесь знатоков чтобы что-то подсказать, времени очень мало -- сегодня желательно это сделать
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.03.2015, 18:22
Ответы с готовыми решениями:

Отображение файловой системы в виде xml !
Всем привет! Дали задание: отобразить файловую систему в виде хмл на джаве, порядок действий такой: 1) FS info; 2)XML; 3)XSD схема; 4)x......

События файловой системы
Есть такая задача: реагировать на изменения в указанных файлах. Всё, что я нашёл - это класс WatchService из пакета java.nio.file. С его...

Рекурсивный обход файловой системы
Я ужо замучалась. Мне надо распечатать все файлы и папки с локального диска С. Понимаю, что задача двести лет как решена, но я не понимаю...

1
138 / 7 / 1
Регистрация: 31.03.2015
Сообщений: 395
02.04.2015, 00:42  [ТС]
Действительно может отображение в Jframe вряд ли получится но записать данные как то надо. Если в данном случае создать
вектор вряд ли возможно--возможно ли создать таблицу БД MYSQL и при каждой итерации добавлять строку с атрибутами файлов -- думаю так проблемы не возникнуть. А потом эту таблицу превратить в XML?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.04.2015, 00:42
Помогаю со студенческими работами здесь

Отображение файловой системы в виде xml !
Всем привет! Дали задание: отобразить файловую систему в виде хмл на джаве, порядок действий такой: 1) FS info; 2)XML; 3)XSD схема; 4)x......

Зацикливание при чтении объекта из файловой системы
Такая проблема. Читаю файл из файловой системы. Перед этим проверяю существует ли файл. public static AdministratorCaching...

Как обойти дерево файловой системы БЕЗ рекурсии
Подскажите как обойти дерево файловой системы на заданную глубину БЕЗ рекурсии, и найти элементы которые в своем имени содержат...

конвертация файловой системы
Пытаюсь изменить файловую систему. Возникает ошибка &quot;Указана не допустимая метка диска&quot;. Что я пробовала сделать: 1) пробовала не...

Сканирование файловой системы
Доброго времени суток всем! Есть задача рекурсивно сканировать определенный каталог и составить SQL-запрос на подобии INSERT INTO...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru