.net 使用C查找/访问CDROM驱动器上的文件#

.net 使用C查找/访问CDROM驱动器上的文件#,.net,file-copying,cd-rom,.net,File Copying,Cd Rom,我试图在CD-ROM驱动器上找到一个文件,以便使用C#console应用程序复制到硬盘驱动器上 我能够找到驱动器号和驱动器名。但我不知道如何找到或定位文件,以便执行从CD-ROM驱动器到硬盘驱动器的复制操作 在尝试实现上述目的的同时,到目前为止,我已经尝试了以下代码 foreach (DriveInfo drive in collection) { if (drive.DriveType == DriveType.CDRom) { if (drive.IsReady)

我试图在CD-ROM驱动器上找到一个文件,以便使用C#console应用程序复制到硬盘驱动器上

我能够找到驱动器号和驱动器名。但我不知道如何找到或定位文件,以便执行从CD-ROM驱动器到硬盘驱动器的复制操作

在尝试实现上述目的的同时,到目前为止,我已经尝试了以下代码

foreach (DriveInfo drive in collection)
{
   if (drive.DriveType == DriveType.CDRom)
   {
      if (drive.IsReady)
      {
         try
         {
            string filePath = drive.RootDirectory.ToString();
            string name = drive.Name;
            string fileName = Path.GetFileName(filePath);
            path = filePath + "\\" + fileName;

            if (File.Exists(path))
            {
               File.Copy(path, @"C:\Users\newfolder");
            }

            MessageBox.Show("File is copied. Please run BC 360 agai");
         }
         catch (Exception ex)
         {
            MessageBox.Show("There is some problem with copying file: \n" + ex.Message);
         }
      }
  }
}

您将枚举所有目录及其包含的文件,然后比较名称,直到找到所需的内容

请看这里


但是我不明白的是,如果你需要定位文件,你必须知道文件名,对吗?因此,您丢失了CD-ROM上文件的相对路径?

谢谢Frank,这个枚举很有帮助。你能多帮我一点忙吗。为了满足我的复制操作,我的exe首先安装在计算机中。下次如果我再次尝试复制具有相同exe的文件,计算机将不允许我。复制操作完成后,我是否可以立即卸载应用程序?这取决于您使用的安装工具,例如单击一次、Installshield、WIX等。。。我想问一个不同的问题,因为这与文件枚举无关。另外,您的要求也没有真正意义:您安装了一个软件,该软件从一个CD-ROM中复制一个文件,而您不知道该文件在CD-ROM上的确切位置,然后再次将其自身删除?我的应用程序的目的是提供一个可执行CD以及其中的*.jar文件。我的供应商将使用它。谁不是那么精通技术。我正在使用Click Once工具在我的供应商机器上安装应用程序。但是如果我下次提供另一个jar文件和可执行文件,它将不会运行,因为应用程序已经安装。抱歉,因为我之前没有清除场景。