c# 第八课 linq stream

1.对文件和目录的访问

①访问目录

可以实例化DirectoryInfo来对特定的目录进行浏览与访问(注意权限限制),在敲书上的代码时,发现其中有一个变量 indentLevel要是按照书上初始化为-1时无法进行循环输出所访问的目录名及其修改时间,所以我把值初始为1。

static int dirCounter = 1;
 2          static int indentLevel = 1;
 3          public static void Main()
 4          {
 5              Tester t = new Tester();
 6              //start directory
 7
 8              string theDirectory = Environment.GetEnvironmentVariable("windir");
 9              DirectoryInfo dir = new DirectoryInfo(theDirectory);
10              t.ExploreDirectory(dir);
11              Console.WriteLine("\n\n{0}directory found.\n", dirCounter);
12          }
13
14          private void ExploreDirectory(DirectoryInfo dir)
15          {
16              //推入一个目录层级
17              indentLevel++;
18              //子目录缩进
19              for(int i = 0; i < indentLevel; i++)
20              {
21                  Console.WriteLine(" ");
22                  Console.WriteLine("[{0}]{1} [{2}]\n", indentLevel, dir.Name, dir.LastAccessTime);
23                  DirectoryInfo[] directories = dir.GetDirectories();
24                  foreach(DirectoryInfo direc in directories)
25                  {
26                      dirCounter++;
27                      ExploreDirectory(direc);//递归调用自己
28                  }
29                  indentLevel--;
30              }
31
32          }

部分结果为

也可以用Directory.GetCurrentDiectory()来得到当前目录(directory类的方法),我觉得这个方法会很常用。

流用于对IO处理,在System.IO名称空间中有以下类:   BinaryReader/Writer   TextReader/Writer   Stream 其中类Stream为抽象类。由此有三个派生类:   MemoryStream:对内存进行读取与写入   BufferedStream:对缓冲器进行读取/写入   FileStream:对文件执行读取与写入

TextReader/Writer为抽象类。由此派生类: StreamReader/StreamWirter StringReader/StreamWrite

IO操作基本上需要用到Stream相关的子类。其实对于Stream来说,操作起来比较简单,只要对细节的处理稍微注意一下,相信在使用它的时候也可以得心应手。

static void Main(string[] args)
{
//文件流的使用:
    Console.WriteLine("请输入一个路径:");
    string s=Console.ReadLine();
    FileStream fileStream=new FileStream(s,FileMode.OpenOrCreate);
    BinaryWriter binStream=new BinaryWriter (fileStream);
    for(int i=1;i<=10;i++)
    {
        binStream.Write((int)i); //将 4 字节有符号整数写入当前流,并将流的位置提升 4 个字节。
    }
    binStream.Close();
    fileStream.Close();
    FileStream f=new             FileStream(s,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);
    BinaryReader buf=new BinaryReader(f);
    for(int i=1;i<=10;i++)
    {
    Console.WriteLine("输出{0}",buf.ReadInt32()); //这样是可以的,因为int是32位的
    }
}

输出结果为

关于file和directory:

1. Classes provided for file and directory manipulation.

2. The classes you need are in the System.IO namespace.

3. File class: Represents a file on disk.

4. Directory class: Represents a directory (Windows folder).

继承此类的对象可以跨越应用程序域边界被引用,甚至被远程引用。远程调用时, 将产生一个远程对象在本地的透明代理,通过此代理来进行远程调用。 使用代理交换消息来跨应用程序域边界进行通讯的对象的基类。

Working with Directories:

1. The Directory class exposes static methods for creating, moving, and exploring directories.

2. All the methods of the Directory class are static; therefore, you can call them all without having an instance of the class.

3. The DirectoryInfo class is a similar class, but one that has nothing but instance members (i.e.,no static members at all).

4. The FileSystemInfo class has a number of properties and methods that provide information about a file or directory.

Creating a DirectoryInfo:

1. Object To explore a directory hierarchy, you need to instantiate a DirectoryInfo object.

2. The DirectoryInfo class provides methods for getting not just the names of contained files and directories, but also FileInfo and DirectoryInfo objects, allowing you to dive in to the hierarchical structure, extracting subdirectories and exploring these recursively.

Working with Files:

1. The DirectoryInfo object can also return a collection of all the files in each subdirectory found.

2. The DirectoryInfo.GetFiles( ) method returns an array of FileInfo objects, each of which describes a file in that directory.

3. The FileInfo and File objects relate to one another, much as DirectoryInfo and Directory do.

4. Like the methods of Directory, all the File methods are static.

5. Like DirectoryInfo, all the methods of FileInfo are instance methods.

时间: 2024-10-10 12:45:38

c# 第八课 linq stream的相关文章

c#第九课 linq stream(2)

流用于对IO处理 在System.IO名称空间中有以下类 BinaryReader/Writer TextReader/Writer Stream 其中类Stream为抽象类.由此有三个派生类: MemoryStream:对内存进行读取与写入 BufferedStream:对缓冲器进行读取/写入 FileStream:对文件执行读取与写入 TextReader/Writer为抽象类.由此派生类: StreamReader/StreamWirter StringReader/StreamWrite

[译文]JOAL教程 第八课 OggVorbis格式流

[译文]JOAL教程 原文地址:http://jogamp.org/joal-demos/www/devmaster/lesson8.html 原文作者:Athomas Goldberg 译文:三向板砖 转载请保留以上信息. 这是JOAL教程系列的最后一节,学习笔记:http://blog.csdn.net/shuzhe66/article/details/40583771 我十分建议您在阅读完本文后参考学习笔记内容,这节的问题非常多. 第八课OggVorbis格式流 本文是DevMaster.

第八课 网络通信

unix_c_08.txt================第八课 网络通信================一.基本概念------------1. ISO/OSI七层网络协议模型~~~~~~~~~~~~~~~~~~~~~~~~~~+------------+--------------+ ---| 应用层 | Application | ^+------------+--------------+ || 表示层 | Presentation | 高层+------------+---------

NeHe OpenGL教程 第三十八课:资源文件

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第三十八课:资源文件 从资源文件中载入图像: 如何把图像数据保存到*.exe程序中,使用Windows的资源文件吧,它既简单又实用. 欢迎来到NeHe教程第38课.离上节课的写作已经有些时日了,加上写了一整天的code,也许笔头已经

【C++探索之旅】第一部分第八课:传值引用,文件源头

内容简介 1.第一部分第八课:传值引用,文件源头 2.第一部分第九课预告:数组威武,动静合一 传值引用,文件源头 这一课的标题有点怪.其实是由这一课的几个重点内容结合起来取的名,慢慢学习就知道啦. 上一课<[C++探索之旅]第一部分第七课:函数效应,分而治之>中,我们初步认识了函数. 不过不要高兴得太早,你以为函数就这样离你远去了嘛?怎么可能,函数将伴随一生好吗,只要你继续编程的话.哈哈,所以你是跑不掉了~ [小编,都跟你签了协议了,没吃药不要随便出来溜达] 这一课我们就继续深入学习与函数相关

NeHe OpenGL教程 第二十八课:贝塞尔曲面

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第二十八课:贝塞尔曲面 贝塞尔曲面: 这是一课关于数学运算的,没有别的内容了.来,有信心就看看它吧. 贝塞尔曲面 作者: David Nikdel ( [email protected] ) 这篇教程旨在介绍贝塞尔曲面,希望有比我更

NeHe OpenGL教程 第十八课:二次几何体

转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第十八课:二次几何体 二次几何体: 利用二次几何体,你可以很容易的创建球,圆盘,圆柱和圆锥. 二次曲面是一种画复合对象的方法,这种方法通常并不需要很多的三角形.我们将要使用第七课的代码.我们将要增加7个变量以及修改纹理以增加一些变化

【Linux探索之旅】第二部分第八课:RTFM 阅读那该死的手册

内容简介 1.第二部分第八课:RTFM 阅读那该死的手册 2.第二部分第九课预告:查找文件,无所遁形 RTFM 阅读那该死的手册 今天这一课也会很轻松. 一般Windows的用户不太习惯看使用手册.有些Windows下的软件下载后是带有使用手册的,但是谁会花时间看呢? 在Linux下,阅读手册应该成为一个反射动作,一个自然而然的反应.虽说一开始要我们去看手册会有点让人生畏,但是我们学习各种Linux命令的使用方法的最好去处就是手册了. 我们这个系列教程也绝不能和手册相比,因为我们的教程里对于每一

【二毛SEO教程】第八课:SEO操作-标签的优化

课前复习(第七课): 1.   标题确定后,不要再改:关键词可改.描述不要轻易改. 2.   关键词密度:不要刻意堆砌或者靠近参考比例,临门一脚即可. 3.   关键词:选词很重要,不要急着发外链. 第八课正文: 1.  如何给网站图片添加alt属性? 作用:告诉搜索引擎,这个图片是什么内容. 什么情况下要做ALT:图片和网站本身内容有紧密联系或者链接到内页 (1)  告诉搜索引擎,图片内容. (2)  促进搜索引擎爬行图片内页内容,促进收录量提升. 哪些页面要做ALT:首页和分类页 index