Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
c#_Presentation_11.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
740.35 Кб
Скачать

If (!fi1.Exists)

{ StreamWriter sw = fi1.CreateText();

sw.WriteLine("Hello"); //

sw.WriteLine("And"); // Запись строк в файл

sw.WriteLine("Welcome"); //

sw.Close(); // Закрытие файла

}

// Открытие файла для чтения.

StreamReader sr = fi1.OpenText();

string line = "";

Console.WriteLine("Файл {0} содержит:", path);

while ((line = sr.ReadLine()) != null) // Чтение строк из файла

Console.WriteLine(line); // Вывод считанных строк

sr.Close(); // Закрытие файла

Console.ReadLine();

string path2 = @"c:\temp\Test2.txt";

FileInfo fi2 = new FileInfo(path2);

fi1.CopyTo(path2); // Копирование файла

Console.WriteLine("Файл {0} был скопирован в {1} .",

path, path2);

// Открытие нового файла для чтения.

StreamReader sr2 = fi2.OpenText();

Console.WriteLine("Файл {0} содержит:", path2);

// Чтение строк из скопированного файла и вывод их на экран

while ((line = sr2.ReadLine()) != null)

Console.WriteLine(line);

sr2.Close(); // Закрытие файла

Console.ReadLine();

fi2.Delete(); // Удаление скопированного файла

Console.WriteLine("Файл {0} был успешно удален.", path2);

Console.ReadLine();

}

}

/* Вывод:

Файл c:\temp\Test.txt содержит:

Hello

And

Welcome

Файл c:\temp\Test.txt был скопирован в c:\temp\Test.txt .

Файл c:\temp\Test2.txt содержит:

Hello

And

Welcome

Файл c:\temp\Test2.txt был успешно удален.

*/

11.7. Использование класса System.Io.DirectoryInfo для работы с файлами и папками

(http://msdn.microsoft.com/ru-ru/library/system.io.directoryinfo.aspx)

Таблица 11.12. Основные свойства и методы класса DirectoryInfo из пространства имен System.IO

Имя

Описание

Поля

FullPath

Представляет полный путь к каталогу или файлу.

OriginalPath

Первоначально заданный пользователем относительный или абсолютный путь.

Свойства

Attributes

Получает или задает атрибуты для текущего файла или каталога. Значение этого свойства представляет сочетание флагов атрибутов файла (из перечисления FileAttributes, таблица 11.6).

CreationTime

Получает или задает время создания текущего файла или каталога.

Exists

Получает значение (типа bool), показывающее, существует ли файл (true) или нет (false).

Extension

Получает строку, содержащую расширение файла.

FullName

Получает строку, содержащую полный путь к каталогу или файлу.

LastAccessTime

Получает или задает время последнего доступа к текущему файлу или каталогу.

LastWriteTime

Получает или задает время последней операции записи в текущий файл или каталог.

Name

Получает строку, содержащую имя текущего каталога (объекта DirectoryInfo).

Parent

Получает родительский каталог заданного подкаталога.

Root

Получает корневой элемент пути.

Методы

Create();

Создает новый каталог.

CreateSubdirectory(sd);

Создает один или несколько подкаталогов по заданному пути (sd, до 248 символов). Путь может быть задан относительно текущего объекта DirectoryInfo.

Delete();

Delete(c);

Удаляет каталог (текущий DirectoryInfo), если он пуст, или со всем содержимым (c = true).

EnumerateDirectories();

EnumerateDirectories(tp);

EnumerateDirectories (tp,op);

Возвращает перечисляемую коллекцию сведений о каталогах в текущем каталоге, соответствующих указанному шаблону поиска (tp). Возможно, поиск ведется также и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

EnumerateFiles();

EnumerateFiles(tp);

EnumerateFiles(tp,op);

Возвращает перечисляемую коллекцию сведений о файлах в текущем каталоге, соответствующих шаблону поиска (tp). Возможно, поиск ведется также и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

EnumerateFileSystemInfos();

EnumerateFileSystemInfos (tp);

EnumerateFileSystemInfos (tp,op);

Возвращает перечисляемую коллекцию сведений о файлах и каталогах в текущем каталоге, соответствующих указанному шаблону поиска. Возможно, поиск ведется также и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

GetDirectories();

GetDirectories(tp);

GetDirectories(tp,op);

Возвращает массив каталогов (объектов DirectoryInfo) в текущем каталоге, соответствующих шаблону поиска (tp), с возможностью поиска и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

GetFiles();

GetFiles(tp);

GetFiles(tp,op);

Возвращает массив файлов (объектов FileInfo) в текущем каталоге, соответствующих шаблону поиска (tp), с возможностью поиска и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

GetFileSystemInfos();

GetFileSystemInfos(tp);

GetFileSystemInfos(tp,op);

Возвращает массив файлов и каталогов (объектов FileSystemInfo) в текущем каталоге, соответствующих шаблону поиска (tp) с возможностью поиска и в подкаталогах (op):

TopDirectoryOnly – поиск только в текущем каталоге (по умолчанию);

AllDirectories – поиск в текущем каталоге и во всех подкаталогах.

MoveTo(sd2);

Перемещает текущий каталог (объект DirectoryInfo) и его содержимое в новое место (sd2).

Refresh();

Обновляет состояние объекта. Этот метод рекомендуется вызывать перед попыткой получения сведений об атрибутах, иначе сведения могут оказаться устаревшими.

ToString();

Возвращает строку, содержащую исходный путь, переданный пользователем.

Пример 11.12. Использование свойств Exists, Name и методов Create, CreateSubdirectory, GetDirectories, GetFiles, MoveTo, Delete класса DirectoryInfo для определения факта существования папок, создания, перемещения и удаления папок, а также вывода содержимого папки и подсчет папок и файлов в ней.

using System;

using System.IO;

class TestDirectoryInfo

{ static void Main(string[] args)

{ string currentDir = @"c:\temp";

string sourceDir = currentDir + @"\Source";

string destDir = currentDir + @"\Destination";

string moveDir = destDir + @"\Source";

// Объявление папок (объектов DirectoryInfo) для управления.

DirectoryInfo cd = new DirectoryInfo(currentDir);

DirectoryInfo sd = new DirectoryInfo(sourceDir);

DirectoryInfo dd = new DirectoryInfo(destDir);

DirectoryInfo md = new DirectoryInfo(moveDir);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]