青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++ Programmer's Cookbook

{C++ 基礎} {C++ 高級} {C#界面,C++核心算法} {設計模式} {C#基礎}

Accessing Files and Directories

 

Welcome to the next installment of the .NET Nuts & Bolts column. In this column we'll explore interacting with files from within .NET. The topics covered will include how to get the properties on files in a directory. It will involve using classes in the System.IO namespace.

Working with Streams

No, I haven't turned this into an article about the great outdoors. Streams have their place with computers as well, although I wouldn't recommend getting your computer near one of the traditional kind. Streams are a concept that have been around for a while, but that are new to Microsoft developers via .NET. A stream is a base class used to abstract the specifics of input and output from the underlying device(s). In general, streams support the ability to read or write. Some streams provide additional capabilities such as seek, which allows navigation forward to a specific location. The device could be a physical file, memory, or the network. List of classes that inherit from the Stream base class are as follows:

  • FileStream—read, write, open, and close files
  • MemoryStream—read and write managed memory
  • NetworkStream—read and write between network connections (System.Net namespace)
  • CryptoStream—read and write data through cryptographic transformations
  • BufferedStream—adds buffering to another stream that does not inherently support buffering

While the streams are used to abstract the input and output from the device, the stream itself is not directly used to read and write data. Instead, a reader or writer object is used to interact with the stream and perform the physical read and write. Here is a list of classes used for reading and writing to streams:

  • BinaryReader and BinaryWriter—read and write binary data to streams
  • StreamReader and StreamWriter—read and write characters from streams
  • StringReader and StringWriter—read and write characters from Strings
  • TextReader and TextWriter—read and write Unicode text from streams

Reading and Writing Text

The following section will use StreamWriter, StreamReader, and FileStream to write text to a file and then read and display the entire contents of the file.

Sample Code to Write and Read a File

using System;
using System.IO;

namespace CodeGuru.FileOperations
{
  /// <remarks>
  /// Sample to demonstrate writing and reading a file.
  /// </remarks>
  class WriteReadFile
  {
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main(string[] args)
   {
     FileStream fileStream = null;
     StreamReader reader = null;
     StreamWriter writer = null;

     try
     {
      // Create or open the file
      fileStream = new FileStream("c:\\mylog.txt",
         FileMode.OpenOrCreate,
         FileAccess.Write);
      writer = new StreamWriter(fileStream);

      // Set the file pointer to the end of the file
      writer.BaseStream.Seek(0, SeekOrigin.End);

      // Force the write to the underlying file and close
      writer.WriteLine(
          System.DateTime.Now.ToString() + " - Hello World!");
      writer.Flush();
      writer.Close();

      // Read and display the contents of the file one
      // line at a time.
      String fileLine;
      reader = new StreamReader("c:\\mylog.txt");
      while( (fileLine = reader.ReadLine()) != null )
      {
        Console.WriteLine(fileLine);
      }
     }
     finally
     {
      // Make sure we cleanup after ourselves
      if( writer != null ) writer.Close();
      if( reader != null ) reader.Close();
     }
   }
  }
}

Working with Directories

There two classes for the manipulation of directories. The classes are named Directory and the DirectoryInfo. The Directory class provides static methods for directory manipulation. The DirectoryInfo class provides instance methods for directory manipulation. They provide the same features and functionality, so the choice comes down to whether you need an instance of an object or not. The members include, but are not limited to the following:

  • Create—create a directory
  • Delete—delete a directory
  • GetDirectories—return subdirectories of the current directory
  • MoveTo—move a directory to a new location

Sample Code to Produce a List of All Directories

The following sample code demonstrates the ability to produce a list of directories using recursion. A recursive procedure is one that calls itself. You must ensure that your procedure does not call itself indefinitely; otherwise, you'll eventually run out of memory. In this case, there are a finite number of subdirectories, so there is automatically a termination point.

using System;
using System.IO;

namespace CodeGuru.FileOperations
{
  /// <remarks>
  /// Sample to demonstrate reading the contents of directories.
  /// </remarks>
  class ReadDirectory
  {
   /// <summary>
   /// The main entry point for the application.
   /// </summary>
   [STAThread]
   static void Main(string[] args)
   {
     DirectoryInfo dirInfo = new DirectoryInfo("c:\\");
     Console.WriteLine("Root: {0}", dirInfo.Name);
     ReadDirectory.ProduceListing(dirInfo, "  ");
     Console.ReadLine();
   }

   /*
    * Recursively produce a list of files
    */
   private static void ProduceListing(DirectoryInfo dirInfo,
                                      string Spacer)
   {
     Console.WriteLine(Spacer + "{0}", dirInfo.Name);
     foreach(DirectoryInfo subDir in dirInfo.GetDirectories())
     {
      Console.WriteLine(Spacer + Spacer + "{0}", subDir.Name);
      if( subDir.GetDirectories().Length > 0 )
      {
        ProduceListing(subDir, Spacer + "  ");
      }
     }
   }
  }
}

Getting File Properties for Office Documents

Microsoft has an ActiveX component that can be used to programmatically retrieve the summary properties (title, subject, etc.) for files such as Excel, Word, and PowerPoint. It has advantages because it does not use Office Automation so Microsoft Office does not have to be installed. This component can be used to produce a listing of files and their properties.

Sample Code to Produce File Listing with Properties

The following code will populate a DataTable with a list of files and their properties. The DataTable could be bound to a DataGrid or another display control as desired. Be sure you've added the appropriate reference to the dsofile.dll that exposes the file properties. Because this is a COM-based DLL, COM Interop will be used to interact with the DLL.

// Setup the data table
DataTable fileTable = new DataTable("Files");
DataRow fileRow;
fileTable.Columns.Add("Name");
fileTable.Columns.Add("Title");
fileTable.Columns.Add("Subject");
fileTable.Columns.Add("Description");

// Open the directory
DirectoryInfo docDir = new DirectoryInfo("C:\\My Documents\\");
if( !docDir.Exists )
{
  docDir.Create();
}

// Add the document info into the table
DSOleFile.PropertyReader propReader =
       new DSOleFile.PropertyReaderClass();
DSOleFile.DocumentProperties docProps;

foreach(FileInfo file in docDir.GetFiles())
{
  try
  {
   fileRow = fileTable.NewRow();
   docProps = propReader.GetDocumentProperties(file.FullName);
   fileRow["Name"] = file.Name;
   fileRow["Title"] = docProps.Title;
   fileRow["Subject"] = docProps.Subject;
   fileRow["Description"] = docProps.Comments;
   fileTable.Rows.Add(fileRow);
  }
  catch( Exception exception )
  {
   Console.WriteLine("Error occurred: " + exception.Message);
  }
}
propReader = null;
this.DocumentGrid.DataSource = fileTable;
this.DocumentGrid.DataBind();

// Force cleanup so dsofile doesn't keep files locked open
GC.Collect();

Summary

You now have seen several cursory ways in which the System.IO namespace can be used to interact with files and directories. We took an additional look to see how to use the dsofile additional DLL from Microsoft to show the properties for Microsoft Office documents.

posted on 2005-11-23 12:24 夢在天涯 閱讀(579) 評論(0)  編輯 收藏 引用 所屬分類: C#/.NET

公告

EMail:itech001#126.com

導航

統計

  • 隨筆 - 461
  • 文章 - 4
  • 評論 - 746
  • 引用 - 0

常用鏈接

隨筆分類

隨筆檔案

收藏夾

Blogs

c#(csharp)

C++(cpp)

Enlish

Forums(bbs)

My self

Often go

Useful Webs

Xml/Uml/html

搜索

  •  

積分與排名

  • 積分 - 1819132
  • 排名 - 5

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              国产精品一区二区久久精品| 欧美视频在线观看免费| 裸体歌舞表演一区二区| 欧美aaa级| 老牛嫩草一区二区三区日本| 亚洲黄色成人久久久| 欧美xxx在线观看| 欧美成人高清视频| 亚洲夜晚福利在线观看| 亚洲午夜免费视频| 狠狠网亚洲精品| 亚洲电影av| 欧美日韩三级| 久久精品成人一区二区三区蜜臀| 性欧美video另类hd性玩具| 一区二区视频免费在线观看| 亚洲国产精品t66y| 欧美网站在线观看| 久久久久久网址| 免费在线视频一区| 亚洲一区二区成人在线观看| 香蕉成人伊视频在线观看| 亚洲第一区中文99精品| aaa亚洲精品一二三区| 国产伦精品一区二区三区视频孕妇| 久久永久免费| 欧美日韩在线一区二区三区| 久久久久欧美精品| 欧美日韩理论| 免费亚洲一区二区| 欧美女同视频| 久久五月天婷婷| 欧美色视频一区| 久久影院午夜论| 国产精品久久久久久久浪潮网站| 麻豆久久婷婷| 国产精品男gay被猛男狂揉视频| 可以免费看不卡的av网站| 欧美日韩亚洲国产一区| 免费久久99精品国产自| 国产精品国产三级国产aⅴ入口 | 国产精品一区久久| 欧美高清在线视频| 国产日韩精品一区二区浪潮av| 欧美激情一区在线| 国精品一区二区| 国产精品99久久久久久久女警| 亚洲第一网站免费视频| 亚洲一区二区三区欧美| 一区二区三区精品视频| 久久综合色播五月| 久久精品官网| 国产酒店精品激情| 一区二区日韩伦理片| 亚洲黄色av一区| 久久综合影视| 免费中文日韩| 国产在线视频不卡二| 亚洲女人天堂成人av在线| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 久久久久久网| 久久国产成人| 国产精品一区二区视频| 国产精品99久久久久久久女警| 日韩一级在线观看| 欧美电影在线| 亚洲精品在线视频观看| 亚洲老板91色精品久久| 欧美福利视频一区| 亚洲国产裸拍裸体视频在线观看乱了中文 | 日韩视频永久免费| 在线综合欧美| 国产精品久久久一区二区三区| 一区二区三区日韩欧美| 亚洲欧美日韩一区二区三区在线| 国产精品v欧美精品v日韩精品| 一本在线高清不卡dvd| 亚洲图片你懂的| 国产精品外国| 久久国产精品久久久| 久久手机精品视频| 91久久精品美女高潮| 欧美寡妇偷汉性猛交| 亚洲美女视频网| 亚洲欧美另类中文字幕| 国产精品欧美日韩| 久久精品视频在线免费观看| 免费人成精品欧美精品| 亚洲麻豆视频| 欧美调教vk| 欧美亚洲午夜视频在线观看| 欧美成人黑人xx视频免费观看| 亚洲激情小视频| 欧美色另类天堂2015| 欧美一区免费| 亚洲国产成人91精品| 亚洲一区二区三区涩| 国产一区二区三区的电影| 久久久午夜精品| 亚洲精品综合久久中文字幕| 亚洲欧美在线磁力| 在线成人h网| 欧美日韩天堂| 久久久噜噜噜久久狠狠50岁| 亚洲伦伦在线| 久久久噜噜噜| 亚洲视频电影图片偷拍一区| 国产主播精品在线| 欧美日韩精品高清| 久久久精品性| 亚洲视频综合| 亚洲风情在线资源站| 欧美制服丝袜第一页| 99视频+国产日韩欧美| 国产欧美高清| 欧美日韩性生活视频| 久久久久国产精品www| 一区二区三区成人精品| 免费在线观看日韩欧美| 欧美在线免费观看亚洲| 亚洲美女色禁图| 在线免费不卡视频| 国产精品视频内| 欧美色欧美亚洲另类七区| 久久一区国产| 久久精品视频99| 午夜视频在线观看一区二区三区 | 亚洲一区二区高清视频| 亚洲欧洲一区| 亚洲国产经典视频| 国产专区综合网| 国产精品日韩一区| 欧美日韩成人综合| 牛牛影视久久网| 久久亚洲私人国产精品va媚药| 午夜精品亚洲一区二区三区嫩草| 日韩视频一区二区| 亚洲精品免费一二三区| 亚洲国产高清一区二区三区| 欧美v日韩v国产v| 两个人的视频www国产精品| 久久久91精品国产| 久久久99爱| 久久久7777| 久久一日本道色综合久久| 久久久777| 久久在线视频| 麻豆久久精品| 亚洲二区三区四区| 亚洲人体一区| 亚洲另类在线一区| 一本大道久久a久久精二百| 99pao成人国产永久免费视频| 亚洲人成绝费网站色www| 亚洲裸体俱乐部裸体舞表演av| 亚洲伦理在线免费看| 中国日韩欧美久久久久久久久| 亚洲午夜精品视频| 亚洲欧美日韩精品久久奇米色影视| 亚洲男女毛片无遮挡| 欧美一区二区黄色| 久久亚洲私人国产精品va媚药| 欧美jizz19性欧美| 欧美日韩免费观看一区三区 | 欧美另类视频| 国产精品高清在线| 国产美女高潮久久白浆| 国产综合久久久久久| 1024国产精品| 亚洲最黄网站| 欧美在线亚洲综合一区| 久久综合九色综合欧美就去吻 | 99一区二区| 亚洲一区二区欧美| 久久电影一区| 欧美激情精品久久久久久蜜臀 | 免费一区视频| 日韩一级成人av| 欧美在线免费观看| 欧美伦理在线观看| 国产亚洲一级| 亚洲毛片在线| 久久精品国产久精国产爱| 欧美剧在线免费观看网站| 国产精品视频成人| 亚洲电影成人| 午夜免费日韩视频| 欧美大秀在线观看| 亚洲一级黄色av| 久久综合久久综合久久综合| 欧美午夜激情视频| 亚洲国产精品嫩草影院| 午夜在线电影亚洲一区| 欧美激情一区二区三区在线视频观看 | 久久久久久亚洲综合影院红桃 | 亚洲精品资源美女情侣酒店| 欧美在线亚洲| 欧美四级电影网站| 亚洲美女黄网| 欧美成人在线影院|