Общие классы потокового ввода и вывода
Класс BufferedStream создает буферизацию для другого потока, такого как NetworkStream. (В классе FileStream буферизация является внутренним свойством, а класс MemoryStream не нуждается в буферизации.) Экземпляр класса BufferedStream может быть создан для некоторых типов потоков в целях повышения производительности ввода и вывода. Буфер — это блок байтов памяти, который используется для кэширования данных, тем самым уменьшая количество обращений к операционной системе.
Класс CryptoStream связывает потоки данных с криптографическими преобразованиями. Несмотря на то, что CryptoStream является производным от Stream, он не является частью пространства имен System.IO, а находится в пространстве имен System.Security.Cryptography.
MemoryStream является небуферизованным потоком, чьи инкапсулированные данные напрямую доступны в памяти. Этот поток не имеет резервного хранилища и может быть использован в качестве временного буфера.
Класс NetworkStream представляет поток через сетевое подключение. Несмотря на то, что NetworkStream является производным от Stream, он не является частью пространства имен System.IO, а находится в пространстве имен System.Net.Sockets.
Ввод-вывод и безопасность
При использовании классов пространства имен System.IO для предоставления доступа должны быть выполнены требования безопасности операционной системы, такие как списки управления доступом. Это требование дополняет остальные требования FileIOPermission.
Примечание. |
Списком управления доступом можно управлять на программном уровне. |
Внимание! |
По умолчанию политика безопасности для Интернета и интрасетей запрещает доступ к файлам. Поэтому при создании кода, который будет передаваться через Интернет, обычные классы ввода/вывода неизолированного хранения не используются. Вместо этого используйте Изолированное хранение. |
|
|
Внимание! |
Когда открыт файловый или сетевой поток, проверка безопасности производится только во время создания потока. Поэтому будьте внимательны во время передачи этих потоков коду с меньшим уровнем доверия или доменам приложений. |
How to: Create a Directory Listing
The following code example shows how to use the I/O classes to create a listing of all files with the extension ".exe" in a directory.
Example
using System; using System.IO; class DirectoryLister { public static void Main(String[] args) { string path = "."; if (args.Length > 0) { if (File.Exists(args[0])) { path = args[0]; } else { Console.WriteLine("{0} not found; using current directory:", args[0]); } } DirectoryInfo dir = new DirectoryInfo(path); foreach (FileInfo f in dir.GetFiles("*.exe")) { String name = f. Name; long size = f.Length; DateTime creationTime = f.CreationTime; Console.WriteLine("{0,-12:N0} {1,-20:g} {2}", size, creationTime, name); } Console.ReadKey(); } } |
|
|
Создание списка каталогов
В следующем примере кода показано использование классов ввода/вывода для создания списка всех файлов с расширением ".exe" в каталоге.
Пример
ß-------
Robust Programming
In this example, the DirectoryInfo is the current directory, denoted by ("."), and the code lists all files in the current directory having a .exe extension, along with their file size, creation time, and name. Assuming that there were .exe files in the \Bin subdirectory of C:\MyDir, the output of this code might look like this:
953 7/20/2000 10:42 AM C:\MyDir\Bin\paramatt.exe 664 7/27/2000 3:11 PM C:\MyDir\Bin\tst.exe 403 8/8/2000 10:25 AM C:\MyDir\Bin\dirlist.exe |
If you want a list of files in another directory, such as your C:\ root directory, pass the argument "C:\" into the executable generated by compiling this code, for example: "testApplication.exe C:\".
Надежное программирование
В этом примере DirectoryInfo является текущим каталогом, обозначенным ("."), а код создает список всех файлов с расширением .exe в текущем каталоге, вместе с их размерами, временем создания и именами. Если предположить, что существуют файлы .exe в поддиректории \Bin каталога C:\MyDir, результат выхода этого кода может выглядеть следующим образом:
953 7/20/2000 10:42 AM C:\MyDir\Bin\paramatt.exe 664 7/27/2000 3:11 PM C:\MyDir\Bin\tst.exe 403 8/8/2000 10:25 AM C:\MyDir\Bin\dirlist.exe |
Если требуется список файлов другого каталога, такого как корневого каталога C:\, то передайте аргумент "C:\" в исполняемый файл путем компиляции этого кода, например: "testApplication.exe C:\".
Дата добавления: 2019-03-09; просмотров: 198; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!