功能测试代码
VHDManager manager = new VHDManager("d:\\temp\\test.vhd");
if (manager.IsSuccess())//如果初始化"Microsoft Virtual Hard Disk"成功
{
//本地文件上传到虚拟磁盘
manager.UploadFile("d:\\temp\\face14.jpg", "文件上传测试.jpg");
//虚拟磁盘上的文件下载到本地
manager.DownloadFile("文件上传测试.jpg", "d:\\temp\\文件下载测试.jpg");
//列出虚拟磁盘上的文件
List<VHDFileInfo> list = manager.ListDir("");//根目录
if (list != null)
{
foreach (VHDFileInfo item in list)
{
Console.WriteLine(item.ToString());
}
}
manager.Close();
}
封装代码,VHDManager.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using DiscUtils;
using DiscUtils.Partitions;
using DiscUtils.Ntfs;
using DiscUtils.Vhd;
using System.Diagnostics;
namespace testDiscUtils.VHDUtils
{
/**
* 标题: 如何使用C#对虚拟磁盘文件(VHD)进行操作
* 功能: 新建虚拟磁盘(Microsoft Virtual File Disk),对虚拟磁盘上的文件/目录进行操作
* 作者: Kagula
* 日期: 2013-3-21
* 环境: VS2010 SP1 C# , Framework 4.0
* 依赖: DiscUtil 0.10(免费开源库)
* 参考: DiscUtil的官网
* http://discutils.codeplex.com/
* 备注: [1]经测试可在虚拟磁盘(VHD)上直接使用带中文字符的文件名。
* */
class VHDManager
{
public int _diskSize = 30 * 1024 * 1024;//默认30M
public String _label = "VHDUtils";//分区的默认标签