您的位置:首页 > 编程语言 > C#

C#2008与.NET 3.5 高级程序设计读书笔记(20)-- 文件输入输出和隔离存储

2010-08-09 15:22 387 查看
1.System.IO命名空间

System.IO命名空间主要包括基于文件和基于内存的输入输出(I/O)服务的相关类库.它们大多数包含在mscorlib.dll中,另外一部分则包含在System.dll中.System.IO命名空间中的多数类型主要用于编程操作物理目录和文件,而另一些类型则提供了从字符串缓冲区和类存区域中读写数据的方法.

代码

// Establish the path to the directory to watch.
FileSystemWatcher watcher = new FileSystemWatcher();
try
{
watcher.Path = @"C:\MyFolder";
}
catch (ArgumentException ex)
{
Console.WriteLine(ex.Message);
return;
}

#region Set up fliters / events.
// Set up the things to be on the lookout for.
watcher.NotifyFilter = NotifyFilters.LastAccess
| NotifyFilters.LastWrite
| NotifyFilters.FileName
| NotifyFilters.DirectoryName;

// Only watch text files.
watcher.Filter = "*.txt";

// Add event handlers.
watcher.Changed += new FileSystemEventHandler(OnChanged);
watcher.Created += new FileSystemEventHandler(OnChanged);
watcher.Deleted += new FileSystemEventHandler(OnChanged);
watcher.Renamed += new RenamedEventHandler(OnRenamed);

// Begin watching the directory.
watcher.EnableRaisingEvents = true;
#endregion

// Wait for the user to quit the program.
Console.WriteLine(@"Press 'q' to quit app.");
while (Console.Read() != 'q') ;
}

#region Event Handlers
static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: {0} {1}!", e.FullPath, e.ChangeType);
}

static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to\n{1}", e.OldFullPath, e.FullPath);
}
#endregion


总结:Directory(Info)和File(Info)可以用来操作物理文件和目录.因为从Stream类型派生的类型操作的是原始直接流,所以常用读/写器(StreamWriter,StringWriter,BinaryWriter)来简化这个读写过程.最后,可以使用FileSystemWatcher来检测文件夹的变化.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐