C# 4.0 如何使用C从DVD/CD中读取文件#
我想从可移动磁盘(CD/DVD)读取文件。 使用下面的代码,我能够找到驱动器C# 4.0 如何使用C从DVD/CD中读取文件#,c#-4.0,c#-3.0,C# 4.0,C# 3.0,我想从可移动磁盘(CD/DVD)读取文件。 使用下面的代码,我能够找到驱动器 ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive"); foreach (ManagementObject mo in mos.Get()) { var Name=mo["Caption"].ToString(); var Drive=mo["Drive"].ToString();
ManagementObjectSearcher mos = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject mo in mos.Get())
{
var Name=mo["Caption"].ToString();
var Drive=mo["Drive"].ToString();
var Id=mo["Id"].ToString();
}
现在我想从DVD中读取文件。。。。
任何帮助都将不胜感激。。
提前谢谢 我不完全确定你说的“从DVD读取文件”是什么意思,但你可以使用以下方法获取每个CD/DVD驱动器上的所有文件
static IEnumerable<string> getDirectoryFilePaths(string path)
{
List<string> filePaths = new List<string>();
try
{
// recursively look through all of the folders
foreach (var dir in Directory.GetDirectories(path, "*"))
{
filePaths.AddRange(getDirectoryFilePaths(dir));
}
}
catch (UnauthorizedAccessException)
{
// skip this stuff
}
// add the files directly in the current drive/folder
filePaths.AddRange(Directory.GetFiles(path, "*").ToList());
return filePaths;
}
static void Main(string[] args)
{
// Get all of the ready CD drives
foreach (var cdDrive in DriveInfo.GetDrives().Where(d => d.DriveType == DriveType.CDRom && d.IsReady))
{
// Start at the drive and get all of the files recursively
IEnumerable<string> driveFiles = getDirectoryFilePaths(cdDrive.Name);
foreach (var file in driveFiles)
{
// do something with the files...
using (FileStream fs = File.OpenRead(file))
{
//...
}
}
}
}
静态IEnumerable GetDirectoryFilePath(字符串路径)
{
列表文件路径=新列表();
尝试
{
//递归地浏览所有文件夹
foreach(Directory.GetDirectories(路径“*”)中的var dir)
{
AddRange(getDirectoryFilePath(dir));
}
}
捕获(未经授权的访问例外)
{
//跳过这些
}
//直接在当前驱动器/文件夹中添加文件
filepath.AddRange(Directory.GetFiles(path,“*”).ToList());
返回文件路径;
}
静态void Main(字符串[]参数)
{
//准备好所有准备好的CD驱动器
foreach(DriveInfo.GetDrives()中的var cdDrive,其中(d=>d.DriveType==DriveType.CDRom&&d.IsReady))
{
//从驱动器开始,递归地获取所有文件
IEnumerable driveFiles=GetDirectoryFilePath(cdDrive.Name);
foreach(driveFiles中的var文件)
{
//对文件做点什么。。。
使用(FileStream fs=File.OpenRead(File))
{
//...
}
}
}
}
显然,您可以更改代码以获取特定的驱动器,而不是查看所有可用的驱动器,但希望这能让您继续。从CD或DVD读取文件与从硬盘读取文件没有什么不同。