Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
grossi Forumaš(ica)
Pridružen/a: 22. 04. 2004. (16:33:41) Postovi: (5D)16
Spol:
Lokacija: Delta Neretva
|
Postano: 16:29 pet, 19. 11. 2004 Naslov: java ispis datoteka |
|
|
Trebam se rekurzivno kretati i ispisivati imena datoteka i direktorija.
ispise mi citav put i ne udje mi u if naredbu.
[code:1]
import java.io.*;
public class Ispis {
private File f; //datoteka koje zelimo obrisati
private Filename imedatoteke; //ime datoteke kao string
public Ispis(){
f=new File(".");
}
private char pathSeparator;
public Ispis(Filename imedatoteke){
this.imedatoteke=imedatoteke;
f = new File(imedatoteke.toString());
}
/*
metoda vraca informacije o datoteci
*/
void ispis_informacija(){
System.out.println("Vi pokusavatate ispisati datoteku: " +
f.getAbsolutePath());
}
public String toString(){
if(!(f.isDirectory())){
System.out.println("Test"); //----------ovo mi ne ispise, ne udje unutra------
return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
}else return imedatoteke.getFilename();
}
//metoda brise datoteku ili direktorij ako je prazan
public void ispis(int Nivo) {
if (!f.exists())
greska("Doslo je do greske " +f);
// ako je direktorij vidi da li je prazan
for(int i=0;i<Nivo-1;i++){
System.out.print(" ");
}
if (!f.isDirectory())
System.out.println(" "+f);
if (f.isDirectory()) {
String[] dat = f.list();
//polje koje sadrzi listu s apstraktni imenima datoteka
if (dat.length > 0) {
System.out.println(" +"+f);
Nivo++;
for(int i=0; i<dat.length;i++){
Filename file = new Filename(f.toString()+'/'+dat[i], '/', '.');
Ispis Temp = new Ispis(file);
Temp.ispis(Nivo);
}
}else{
System.out.println(" -"+f);
}
}
}
/*
ovdje procesiramo sve neuspjehe
*/
protected void greska(String poruka)
throws java.lang.IllegalArgumentException {
throw new java.lang.IllegalArgumentException(poruka);
}
}
// Ova klasa procesira string i ispituje da li je string
//kvalificirano ime za direktorij na odredjenoj platformi
//ne provjerava da li taj file zaista postoji
public class Filename {
private String fullPath; //kompletan put do file npr c:\java\Hello.java
//ili npr /java/Hello.java na UNIX-u
private char pathSeparator; //separator / ili \
private char extensionSeparator; //separator za ekstenziju .
public Filename(String str, char sep, char ext) {
fullPath = str;
pathSeparator = sep;
extensionSeparator = ext;
} // uocite inicijalizaciju konstruktorom jer su private
public String toString(){
return fullPath;
}
public String getExtension() {
int dot = fullPath.lastIndexOf(extensionSeparator);
// int lastIndexOf(int ch) vraca poslijednji indeks na kojem se pojavljuje ch
// ukoliko se ch ne pojavljuje vraca -1
return fullPath.substring(dot +1);
}
public String getFilename() {
int dot = fullPath.lastIndexOf(extensionSeparator);
int sep = fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(sep + 1, dot);
}
public String getPath() {
int sep = fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(0, sep);
}
}
public class Test {
/*
-testira klasu Obrisi
-kao jedini argument uzima s komandne linije ime datoteke
*/
public static void main(String[] args) {
if (args.length >= 1) {
try {
Filename file = new Filename(args[0].toString(), '/', '.');
Ispis ob= new Ispis(file);
ob.ispis(1);
}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
else{
try {
Ispis ob= new Ispis();
ob.ispis(1);
}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
}
[/code:1]
Moj primjer ispisa je ovaj:
[code:1] +c:\java\pretrazivanje
c:\java\pretrazivanje\.nbattrs
c:\java\pretrazivanje\pretrazivanje.class
c:\java\pretrazivanje\pretrazivanje.java
+c:\java\prgoram4
+c:\java\prgoram4\polar
c:\java\prgoram4\polar\.nbattrs
c:\java\prgoram4\polar\KompleksanBroj.class
c:\java\prgoram4\polar\KompleksanBroj.java
c:\java\prgoram4\polar\PolarKompleks.class
c:\java\prgoram4\polar\PolarKompleks.java
c:\java\prgoram4\Test.class
c:\java\prgoram4\Test.java
+c:\java\stog
c:\java\stog\Algoritam.class
c:\java\stog\algoritam.java
c:\java\stog\element.java
c:\java\stog\Implementacija.class
c:\java\stog\Implementacija.java
c:\java\stog\stog.class
c:\java\stog\stog.java
[/code:1]
Ja bih tija ovakav ispis
[code:1]
+pretrazivanje
.nbattrs
pretrazivanje.class
pretrazivanje.java
+ prgoram4
+ polar
.nbattrs
KompleksanBroj.class
KompleksanBroj.java
PolarKompleks.class
PolarKompleks.java
Test.class
Test.java
+ stog
Algoritam.class
algoritam.java
element.java
Implementacija.class
Implementacija.java
stog.class
stog.java
[/code:1]
Moze li mala pomoc.
Hvala
Trebam se rekurzivno kretati i ispisivati imena datoteka i direktorija.
ispise mi citav put i ne udje mi u if naredbu.
Kod: |
import java.io.*;
public class Ispis {
private File f; //datoteka koje zelimo obrisati
private Filename imedatoteke; //ime datoteke kao string
public Ispis(){
f=new File(".");
}
private char pathSeparator;
public Ispis(Filename imedatoteke){
this.imedatoteke=imedatoteke;
f = new File(imedatoteke.toString());
}
/*
metoda vraca informacije o datoteci
*/
void ispis_informacija(){
System.out.println("Vi pokusavatate ispisati datoteku: " +
f.getAbsolutePath());
}
public String toString(){
if(!(f.isDirectory())){
System.out.println("Test"); //----------ovo mi ne ispise, ne udje unutra------
return imedatoteke.getFilename()+"."+imedatoteke.getExtension();
}else return imedatoteke.getFilename();
}
//metoda brise datoteku ili direktorij ako je prazan
public void ispis(int Nivo) {
if (!f.exists())
greska("Doslo je do greske " +f);
// ako je direktorij vidi da li je prazan
for(int i=0;i<Nivo-1;i++){
System.out.print(" ");
}
if (!f.isDirectory())
System.out.println(" "+f);
if (f.isDirectory()) {
String[] dat = f.list();
//polje koje sadrzi listu s apstraktni imenima datoteka
if (dat.length > 0) {
System.out.println(" +"+f);
Nivo++;
for(int i=0; i<dat.length;i++){
Filename file = new Filename(f.toString()+'/'+dat[i], '/', '.');
Ispis Temp = new Ispis(file);
Temp.ispis(Nivo);
}
}else{
System.out.println(" -"+f);
}
}
}
/*
ovdje procesiramo sve neuspjehe
*/
protected void greska(String poruka)
throws java.lang.IllegalArgumentException {
throw new java.lang.IllegalArgumentException(poruka);
}
}
// Ova klasa procesira string i ispituje da li je string
//kvalificirano ime za direktorij na odredjenoj platformi
//ne provjerava da li taj file zaista postoji
public class Filename {
private String fullPath; //kompletan put do file npr c:\java\Hello.java
//ili npr /java/Hello.java na UNIX-u
private char pathSeparator; //separator / ili \
private char extensionSeparator; //separator za ekstenziju .
public Filename(String str, char sep, char ext) {
fullPath = str;
pathSeparator = sep;
extensionSeparator = ext;
} // uocite inicijalizaciju konstruktorom jer su private
public String toString(){
return fullPath;
}
public String getExtension() {
int dot = fullPath.lastIndexOf(extensionSeparator);
// int lastIndexOf(int ch) vraca poslijednji indeks na kojem se pojavljuje ch
// ukoliko se ch ne pojavljuje vraca -1
return fullPath.substring(dot +1);
}
public String getFilename() {
int dot = fullPath.lastIndexOf(extensionSeparator);
int sep = fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(sep + 1, dot);
}
public String getPath() {
int sep = fullPath.lastIndexOf(pathSeparator);
return fullPath.substring(0, sep);
}
}
public class Test {
/*
-testira klasu Obrisi
-kao jedini argument uzima s komandne linije ime datoteke
*/
public static void main(String[] args) {
if (args.length >= 1) {
try {
Filename file = new Filename(args[0].toString(), '/', '.');
Ispis ob= new Ispis(file);
ob.ispis(1);
}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
else{
try {
Ispis ob= new Ispis();
ob.ispis(1);
}
catch (IllegalArgumentException e) {
System.err.println(e.getMessage());
}
}
}
}
|
Moj primjer ispisa je ovaj:
Kod: | +c:\java\pretrazivanje
c:\java\pretrazivanje\.nbattrs
c:\java\pretrazivanje\pretrazivanje.class
c:\java\pretrazivanje\pretrazivanje.java
+c:\java\prgoram4
+c:\java\prgoram4\polar
c:\java\prgoram4\polar\.nbattrs
c:\java\prgoram4\polar\KompleksanBroj.class
c:\java\prgoram4\polar\KompleksanBroj.java
c:\java\prgoram4\polar\PolarKompleks.class
c:\java\prgoram4\polar\PolarKompleks.java
c:\java\prgoram4\Test.class
c:\java\prgoram4\Test.java
+c:\java\stog
c:\java\stog\Algoritam.class
c:\java\stog\algoritam.java
c:\java\stog\element.java
c:\java\stog\Implementacija.class
c:\java\stog\Implementacija.java
c:\java\stog\stog.class
c:\java\stog\stog.java
|
Ja bih tija ovakav ispis
Kod: |
+pretrazivanje
.nbattrs
pretrazivanje.class
pretrazivanje.java
+ prgoram4
+ polar
.nbattrs
KompleksanBroj.class
KompleksanBroj.java
PolarKompleks.class
PolarKompleks.java
Test.class
Test.java
+ stog
Algoritam.class
algoritam.java
element.java
Implementacija.class
Implementacija.java
stog.class
stog.java
|
Moze li mala pomoc.
Hvala
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
grossi Forumaš(ica)
Pridružen/a: 22. 04. 2004. (16:33:41) Postovi: (5D)16
Spol:
Lokacija: Delta Neretva
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (355F)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
|