• Nie Znaleziono Wyników

Pliki i obsługastrumieni•Klasy w przestrzeni System.IO•Operacje na katalogach •–tworzenie i usuwanie, •-kopiowanie i przenoszenie, •-odczytywanie informacji o katalogu•Obsługa plików•-tworzenie i usuwanie,•-kopiowanie i przenoszenie,•-odczytywanie informa

N/A
N/A
Protected

Academic year: 2021

Share "Pliki i obsługastrumieni•Klasy w przestrzeni System.IO•Operacje na katalogach •–tworzenie i usuwanie, •-kopiowanie i przenoszenie, •-odczytywanie informacji o katalogu•Obsługa plików•-tworzenie i usuwanie,•-kopiowanie i przenoszenie,•-odczytywanie informa"

Copied!
19
0
0

Pełen tekst

(1)

Pliki i obsługa strumieni

Klasy w przestrzeni System.IO

Operacje na katalogach

– tworzenie i usuwanie,

- kopiowanie i przenoszenie,

- odczytywanie informacji o katalogu

Obsługa plików

- tworzenie i usuwanie,

- kopiowanie i przenoszenie,

- odczytywanie informacji o pliku.

Strumienie - obsługa plików tekstowych

(2)

2016-12-14 Metody programowania – 1 W8 2

Klasy w przestrzeni System.IO

Klasy obsługujące pliki i katalogi znajdują się w przestrzeni nazw System.IO

Zestaw podstawowych klas operujących na plikach i katalogach zawiera tabela 8.1

Klasa Opis

Directory Udostępnia metody do operowania na katalogach np.

przenoszenie

File Udostępnia podstawowe mechanizmy do tworzenia, usuwania i przenoszenia plików

Path Przetwarzanie informacji o ścieżkach katalogów i plików DirectoryInfo Podobne działanie jak klasa Directory, jej metody nie

wykonują testów bezpieczeństwa

FileInfo Jak klasa File bez testów bezpieczeństwa

FileSystemInfo Klasa bazowa dla DirectoryInfo i FileInfo

(3)

using System;

using System.IO;

namespace TworzenieKatalogu {

class Program {

static void Main(string[] args) {

if (!Directory.Exists("E:\\NowyKatalog\\Podkatalog")) {

Directory.CreateDirectory("E:\\NowyKatalog\\Podkatalog");

Directory.CreateDirectory("E:\\NowyKatalog\\InnyKatalog");

}

Console.WriteLine("Aby kontynuować naciśnij dowolny klawisz...");

Console.ReadKey();

// A teraz usuniemy ten katalog

if (Directory.Exists("E:\\NowyKatalog\\Podkatalog")) {

Directory.Delete("E:\\NowyKatalog\\Podkatalog");

// Usunięto podkatalog

Console.WriteLine("Aby kontynuować naciśnij dowolny klawisz...");

Console.ReadKey();

// Usuwam katalogi

Directory.Delete("E:\\NowyKatalog", true);

}

Console.WriteLine("Aby kontynuować naciśnij dowolny klawisz...");

Console.ReadKey();

} } }

(4)

2016-12-14 Metody programowania – 1 W8 4

(5)

Odczytywanie informacji o katalogu – klasa DirectoryInfo

Najważniejsze właściwości i metody tej klasy zebrano w tabeli 8.2

Właściwość/

Metoda

Opis

Attributes Atrybuty katalogu

CreationTime Czas utworzenia katalogu

CreationTimeUTC Czas utworzenia katalogu w formacie UTC (Coordinal Universal Time)

FullName Pełna ścieżka do katalogu

LastAccessTime Czas ostatniego dostępu do katalogu

LastAccessTimeUTC Czas ostatniego dostępu do katalogu w formacie UTC

LastWriteTime Czas ostatniego zapisu do katalogu

LastWriteTimeUTC Czas ostatniego zapisu do katalogu w formacie UTC

Name Metoda – zwraca nazwę katalogu

FullName Metoda - zwraca pełną ścieżkę do katalogu

Parent Metoda – zwraca katalog macierzysty

(6)

2016-12-14 Metody programowania – 1 W8 6

using System;

using System.IO;

namespace Directory_info_plik {

class Program {

static void Main(string[] args) {

DirectoryInfo katalog =

new DirectoryInfo(@"E:\Zajecia_zima_2016\UJW\Metody_programowania_1W\Metody_progr_8

\Directory_info_plik\Directory_info_plik\bin\Debug");

// Wszystkie pliki

FileInfo[] prezentacje = katalog.GetFiles("*.*");

// Ile jest tam plików ?

Console.WriteLine("Znaleziono {0} plików", prezentacje.Length);

// Wyświetlamy informacje o każdym pliku foreach (FileInfo fi in prezentacje) {

Console.WriteLine("========================================================");

Console.WriteLine(" Nazwa pliku: {0} ", fi.Name);

Console.WriteLine(" Wielkość pliku: {0}kB ", fi.Length/1000);

Console.WriteLine(" Czas utworzenia: {0} ", fi.CreationTime);

Console.WriteLine(" Ostatni zapis: {0} ", fi.LastWriteTime);

Console.WriteLine(" Atrybuty: {0} ", fi.Attributes.ToString());

Console.WriteLine("========================================================");

Console.Write("Dalej...");

Console.ReadKey();

}

Console.Write("Aby zakończyć naciśnij dowolny klawisz...");

Console.ReadKey();

} } }

(7)
(8)

2016-12-14 Metody programowania – 1 W8 8

using System;

using System.Windows.Forms;

using System.IO;

namespace KatalogInformacje {

public partial class Form1 : Form {

public Form1() {

InitializeComponent();

lbKatalog.Items.Clear();

}

private void butKatalogInfo_Click(object sender, EventArgs e) {

// Będziemy czytać informacje o katalogu macierzystym // bieżacej aplikacji

DirectoryInfo katalogInfo =

new DirectoryInfo(Application.StartupPath);

lbKatalog.Items.Add("Atrybuty: " + katalogInfo.Attributes);

lbKatalog.Items.Add("Pełna ścieżka: " + katalogInfo.FullName);

lbKatalog.Items.Add("Katalog macierzysty: " + katalogInfo.Parent);

lbKatalog.Items.Add("Data utworzenia: " +

katalogInfo.CreationTime.ToShortDateString());

lbKatalog.Items.Add("Data ostatniego dostępu: " +

katalogInfo.LastAccessTime.ToShortDateString());

lbKatalog.Items.Add("Czas zapisu: " +

katalogInfo.LastWriteTime.ToLongTimeString());

} } }

(9)
(10)

2016-12-14 Metody programowania – 1 W8 10

using System;

using System.IO;

namespace KlasaFileSystemInfo {

class Program {

static readonly int depth = 4;

public static void ShowDir(string katalog, int głębokość) {

if (głębokość <= depth) {

Console.WriteLine("Podkatalogi w katalogu " + katalog);

foreach (string nazwaPliku in Directory.GetFiles(katalog,

"*.*")) {

Console.WriteLine(" - Pliki w katalogu " +

Path.GetFileName(nazwaPliku));

foreach (string subDir in

Directory.GetDirectories(katalog)) ShowDir(subDir, głębokość + 1);

}

Console.ReadKey();

}

}

(11)

static void Main() {

string dir = @"e:\cSharp2006\Nauka";

DirectoryInfo di = new DirectoryInfo(dir);

di.Refresh();

DateTime IODate = di.CreationTime;

Console.WriteLine("{0:d}", IODate);

//

string file = @"e:\cSharp2006\Nauka\Trasy\Program.cs";

FileInfo fi = new FileInfo(file);

// Dane katalogu if (fi.Exists) {

fi.Refresh();

IODate = fi.CreationTime;

Console.WriteLine("{0:d}", IODate);

Console.WriteLine(fi.Name);

Console.WriteLine(fi.Extension);

FileAttributes attrib = fi.Attributes;

Console.WriteLine((byte)attrib);

Console.WriteLine(attrib);

Console.ReadKey();

// Dodanie katalogu

string nowyPodkatalog = "testowy";

string ścieżka = dir + @"\" + nowyPodkatalog;

(12)

2016-12-14 Metody programowania – 1 W8 12

if (!Directory.Exists(ścieżka)) {

Directory.CreateDirectory(ścieżka);

Console.WriteLine("Utworzono katalog " + ścieżka + " sprawdź !");

}

Console.ReadKey();

}

string doUsunięcia = dir + @"\testowy";

if (Directory.Exists(doUsunięcia)) {

Directory.Delete(doUsunięcia);

Console.WriteLine("Usunięto katalog " + doUsunięcia);

}

Console.ReadKey();

ShowDir("e:\\cSharp2006\\",3);

Console.ReadKey();

//

// Wyświetlanie in formacji o pliku //

if (fi.Exists) {

Console.WriteLine("Plik {0}\n - długość {1}\n - nazwa {2}\n - katalog {3}\n - utworzony {4:d}\n - modyfikowany {5:d}", file, fi.Length, fi.Name, fi.DirectoryName, fi.CreationTime, fi.LastAccessTime);

}

Console.ReadKey();

(13)

// Pisanie danych do pliku

Console.WriteLine("Pisanie tekstu do pliku");

FileInfo ftx = new FileInfo(@"e:\cSharp2006\Nauka\test.txt");

FileStream fstr = ftx.Create();

StreamWriter sw = new StreamWriter(fstr);

sw.Write("To jest plik testowy\nsprawdzamy jak się pisze i czyta tekst do

pliku\ni z pliku dyskowego");

sw.Write("Numerki {0}, {1}, {2}", 1, 2, 3*3.333);

sw.Close();

fstr = ftx.OpenRead();

StreamReader sr = new StreamReader(fstr);

string tekst;

while ((tekst = sr.ReadLine()) != null) {

Console.WriteLine(tekst);

}

sr.Close();

fstr.Close();

Console.ReadKey();

} }

}

(14)

2016-12-14 Metody programowania – 1 W8 14

(15)

Typ wyliczeniowy FileAttributes – tabela 8.3 Wartość typu

FileAttributes

Opis

Archive Status archiwalny pliku lub katalogu; aplikacja zaznacza w ten sposób pliki do archiwizacji lub usunięcia

Compressed Plik lub katalog skompresowany

Directory Element jest katalogiem, a nie plikiem

Encrypted Plik lub katalog zaszyfrowany Hidden Plik lub katalog ukryty

Normal Plik lub katalog normalny – nie ustawiono innych atrybutów Offline Plik lub katalog niedostępny

LastWriteTimeUTC Czas ostatniego zapisu do katalogu w formacie UTC ReadOnly Plik lub katalog tylko do odczytu

System Plik systemowy – stanowi część systemu operacyjnego lub system

operacyjny ma do niego wyłączność

(16)

2016-12-14 Metody programowania – 1 W8 16

Obsługa plików tekstowych – strumienie

Do obsługi strumieni plików wykorzystuje się klasę FileStream a do obsługi strumieni w pamięci – klasę MemoryStream.

Do odczytu danych ze strumieni wykorzystuje się obiekty klasy StreamReader a do zapisu do strumieni – obiekty klasy StreamWriter.

Jeden z przeciążonych konstruktorów klasy FileStream wymaga podania następujących parametrów: ścieżki do pliku, trybu otwarcia pliku, trybu dostępu do pliku.

Wartości typu wyliczeniowego FileMode określające tryb otwarcia pliku zestawiono w tabeli 8.4

Wartość Opis

Append

Tworzy lub otwiera plik i przechodzi na jego koniec (z parametrem FileAccess.Write)

Create

Tworzy plik, a jeżeli już istnieje, to zastępuje jego starą zawartość

CreateNew

Tworzy plik, a jeżeli już istnieje, to generuje odpowiedni wyjątek

Open

Otwiera nowy plik do odczytu, a jeżeli nie istnieje, to generuje wyjątek

OpenOrCreate

Otwiera plik, a jeżeli nie istnieje – tworzy nowy

Truncate

Otwiera plik i czyści jego zawartość

(17)

Object

TextReader

StreamReader

StringReader

TextWriter

StreamWriter

StringWriter

Abstrakcyjna klasa bazowa

Klasa potomna

Klasa potomna

Abstrakcyjna klasa bazowa

Klasa potomna

Klasa potomna

(18)

2016-12-14 Metody programowania – 1 W8 18

using System;

using System.IO;

namespace Zapis_do_pliku_txt {

class Program {

static void Main(string[] args) {

// Tworzymy plik w katalogu macierzystym aplikacji FileInfo plik = new FileInfo("Przyklad.txt");

// Tworzymy obiekt StreamWriter i zapisujemy coś tam StreamWriter pisarz = plik.CreateText();

pisarz.WriteLine("Słowa, słowa, słowa ...");

pisarz.WriteLine("Młodości ty nad poziomy wylatuj ...");

pisarz.WriteLine("Czemu cieniu odchodzisz, ręce złożywszy na

pancerz ?");

for (int i = 0; i < 10; i++) pisarz.Write(2 * i + " ");

pisarz.Write(pisarz.NewLine); // Wstawiamy znak nowej linii // Zamknięcie strumienia zapisu - opróżnia bufor

pisarz.Close();

Console.WriteLine("Naciśnij dowolny klawisz...");

Console.ReadKey();

} }

}

(19)

Cytaty

Powiązane dokumenty

Temat: Kasowanie, przenoszenie i kopiowanie, czyli dokonywanie prostych poprawek..

Po ostatnim przeczytanym znaku wstawia do bufora buf znak '\0' Jeśli wykonanie zakończyło się poprawnie, to funkcja zwraca wskazanie do łańcucha buf. Jeśli wystąpił błąd

/D:data - Kopiuje tylko te pliki które zostały utworzone lub zmodyfikowane po podanej dacie /P - Wymaga potwierdzenia przed zapisaniem ka dego pliku. /V - Weryfikuje poprawno

Psychologiczne, penetrujące istotę ludzkiej osobowości, niełatwe do odczytania w warstwie fabularnej, pełne przenikających się nawzajem wątków narracyjnych często

Porz ądkowanie dysku: kopiowanie, przenoszenie, usuwanie plików i folderów 1

Usuń katalog Meksyk z ca łą

wykonać podstawowe operacje w systemie plików: wyświetlenie zawartości, zmiana katalogu, tworzenie, zmiana nazwy, usuwanie, przenoszenie,

lewym przyciskiem myszy, następnie na pasku narzędzi wybieramy ikonę Kopiuj.. Klikamy