Копирование с CDRom/DVDRom

Рейтинг: 1Ответов: 2Опубликовано: 10.03.2011

Здравствуйте!

Есть проблема. Написал программу, которая расшифровывает дешифрованные и копирует некоторые файлы. На винчестере или на флешке программа работает. Но вот с CD диска не хочет ни копировать, ни дешифровать. Может подскажет кто-нибудь, как устранить такую проблему.

public static  class CopyDirectory
{
    public static void CopyDir(DirectoryInfo soursDir, DirectoryInfo destDir)
    {
        while (true)
        {
            CreateDir(soursDir, destDir);

            // Теперь проверяем наличие в ней папок
            DirectoryInfo[] dirs = soursDir.GetDirectories();
            if (dirs.Length > 0)
            {
                foreach (DirectoryInfo di in dirs)
                {
                    var dir = new DirectoryInfo(destDir.FullName.ToString() + "\\" + di.Name.ToString());
                    CopyDir(di, dir);
                }
                break;
            }
            else break;
        }
    }
    // Создаем папку
    private static void CreateDir(DirectoryInfo soursDir, DirectoryInfo destDir)
    {
        if (!destDir.Exists) destDir.Create();

        // Проверяем наличие файлов
        FileInfo[] fls = soursDir.GetFiles();
        if (fls.Length > 0) //копируем если есть
            foreach (FileInfo fi in fls)
                fi.CopyTo(destDir.FullName.ToString() + "\\" + fi.Name.ToString(), true);
    }
}

Вот собственно и реализация метода:

// Первое копирование
string path4 ="D:\Test\1";
var soursDir1 = new DirectoryInfo("C:\Test\1"); // Папка, из которой копировать
var destDir1 = new DirectoryInfo(path4); // Куда копировать
CopyDirectory.CopyDir(soursDir1, destDir1);

Ответы

▲ 1Принят

На первый взгляд в коде нет ошибок: вполне соответствует образцам. Есть идеи по отладке.

  1. Проверить права на чтение и запись.
  2. Проверить путь, по которому читаются данные (имя устройства).
  3. Проверить готово ли устройство перед чтением (есть ли диск внутри).
  4. Проверить открывается ли файл на чтение с устройства.
  5. Проверить нет ли в коде попытки записи на диск только для чтения.

Чтобы проще было отлаживаться:

  1. Добавить печати в логи имен файлов и каталогов.
  2. Добавить в код обработку исключений по операциям с файлами.
▲ 1

Измените строчки

"D:\Test\1"

на

@"D:\Test\1"

или

"D:\\Test\\1".