Advertisement
simov

IspitSeptemvri2015Termin2

Jun 20th, 2018
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.33 KB | None | 0 0
  1. package ispitni;
  2.  
  3. import java.io.*;
  4.  
  5. public class IspitSeptemvri2015Termin2 {
  6.  
  7.     public static void main(String[] args) throws IOException {
  8.         // TODO Auto-generated method stub
  9.  
  10.         rabota("vlez", "izlez");
  11.     }
  12.  
  13.     public static void rabota(String vlez_value, String izlez_value) throws IOException {
  14.         File vlez = new File(vlez_value);
  15.         File izlez = new File(izlez_value);
  16.  
  17.         if (!vlez.exists())
  18.             System.out.println("vlez ne postoi");
  19.         else {
  20.             if (! vlez.isDirectory())
  21.                 return;
  22.            
  23.             if (izlez.exists())
  24.             {
  25.                 if (izlez.isDirectory())
  26.                 rekurzijaBrisenje(izlez);
  27.                 else
  28.                     return;
  29.             }
  30.  
  31.             izlez.mkdirs();
  32.  
  33.             rekurzivnoListanje(vlez, izlez);
  34.  
  35.         }
  36.  
  37.     }
  38.  
  39.     public static void rekurzijaBrisenje(File papka) {
  40.  
  41.         // listanje na direktoriumot papka
  42.         File[] lista = papka.listFiles();
  43.  
  44.         // izminuvanje na site File-ovi
  45.         // od direktoriumot papka
  46.         // koi se smesteni vo lista
  47.  
  48.         for (File f : lista) {
  49.  
  50.             // dokolku e datoteka
  51.             // moze vednas da se izbrise
  52.             if (f.isFile()) {
  53.                 f.delete();
  54.             }
  55.             // dokolku e direktorium
  56.             // vikni ja funkcijata za nego
  57.             // toa kje ovozmozi da se izlista direktoriumot
  58.             // i da se izbrisat site datoteki vo nego
  59.             else if (f.isDirectory()) {
  60.                 rekurzijaBrisenje(f);
  61.                 // otkako kje se izbrisat site datoteki od direktoriumot
  62.                 // direktoriumot kje ostane prazen
  63.                 // i moze bez problem da se izbrise
  64.                 f.delete();
  65.  
  66.             }
  67.         }
  68.  
  69.     }
  70.  
  71.     public static void rekurzivnoListanje(File vlez, File izlez) throws IOException {
  72.         File[] lista = vlez.listFiles();
  73.  
  74.         for (File f : lista) {
  75.             if (f.isFile()) {
  76.                 // vaka moze za testiranje
  77.                 // pa potoa da se smeni so dat
  78.                 if (f.getName().endsWith(".txt")) {
  79.                     // ova samo za testiranje
  80. //                  f.setReadable(true);
  81. //                  f.setWritable(true);
  82.                     rabotaSoDatoteki(f, izlez);
  83.                 }
  84.             }
  85.             else if (f.isDirectory())
  86.                 rekurzivnoListanje(f, izlez);
  87.  
  88.         }
  89.     }
  90.  
  91.     private static void rabotaSoDatoteki(File datoteka, File izlez) throws IOException {
  92.  
  93.  
  94.         if (datoteka.canRead() && !datoteka.canWrite()) {
  95.             File nova = new File(izlez, datoteka.getName());
  96.            
  97.             if (nova.exists())
  98.                 nova.delete();
  99.  
  100.             nova.createNewFile();
  101.  
  102.             RandomAccessFile datotekaCitanje = null;
  103.             RandomAccessFile datotekaPisuvanje = null;
  104.  
  105.             try {
  106.                 datotekaCitanje = new RandomAccessFile(datoteka, "r");
  107.                 datotekaPisuvanje = new RandomAccessFile(nova, "rw");
  108.  
  109.                 int b = 0;
  110.  
  111.                 while ((b = datotekaCitanje.read()) != -1)
  112.                     datotekaPisuvanje.write(b);
  113.  
  114.             }
  115.             finally {
  116.                 if (datotekaCitanje != null)
  117.                     datotekaCitanje.close();
  118.  
  119.                 if (datotekaPisuvanje != null)
  120.                     datotekaPisuvanje.close();
  121.  
  122.             }
  123.  
  124.         } else if (datoteka.canRead() && datoteka.canWrite()) {
  125.            
  126.             File rezultat = new File(izlez, "write.dat");
  127.  
  128.             RandomAccessFile datotekaCitanje = null;
  129.             RandomAccessFile datotekaPisuvanje = null;
  130.  
  131.             try {
  132.                 datotekaCitanje = new RandomAccessFile(datoteka, "r");
  133.                 datotekaPisuvanje = new RandomAccessFile(rezultat, "rw");
  134.  
  135.                 int b = 0;
  136.                 datotekaPisuvanje.seek(rezultat.length());
  137.                
  138.                 while ((b = datotekaCitanje.read()) != -1)
  139.                     datotekaPisuvanje.write(b);
  140.  
  141.             } finally {
  142.                 if (datotekaCitanje != null)
  143.                     datotekaCitanje.close();
  144.  
  145.                 if (datotekaPisuvanje != null)
  146.                     datotekaPisuvanje.close();
  147.  
  148.             }
  149.  
  150.         }
  151.  
  152.     }
  153.  
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement