Я пытаюсь получить значение дескриптора файла, созданного с использованием класса System.IO.FileStream.

using System.IO;

Filestream fs = New FileStream("c:/1/txt",FileMOde.OpenorCreate,FileAccess.ReadWrite);

Intptr file_ptr = fs.Handle;

Когда я запускаю это в ОС XP-x86 с конфигурацией отладки, он работает нормально. Но когда я запускаю его в ОС Ce-Arm с конфигурацией выпуска, он выдает ошибку.

System.IO.FileStream не содержит определения для Handle, и не может быть найден метод расширения Handle, принимающий первый аргумент типа System.IO.FileStream (отсутствует ли у вас директива using или ссылка на сборку ?)

Следует ли мне вносить какие-либо изменения, когда я пытаюсь встроить конфигурации выпуска. Я знаю, что конфигурация выпуска включит все оптимизации компилятора. Но при чем тут встроенные классы и свойства? Я действительно в замешательстве. Пожалуйста помоги.

Заранее спасибо.

0
Prasaanth 24 Янв 2014 в 23:53

1 ответ

Лучший ответ

Здесь происходит несколько вещей.

  1. Каталоги в Windows (рабочий стол и CE) разделяются обратной косой чертой '\', а не косой чертой. Windows для настольных ПК может не возражать, но Windows CE это не понравится.
  2. Windows CE не имеет понятия букв дисков (или текущего каталога, если на то пошло), поэтому ваш путь также недействителен по этой причине.
  3. CF FileStream не раскрывает дескриптор файла, и я бы сказал, по вполне веским причинам. Это конкретная причина ошибки, которую вы видите. Неправильное использование дескриптора вне управляемого потока может привести к тому, что управляемая сторона вещей перейдет в неопределенное состояние и приведет к плохим ситуациям. Зачем именно вам нужна эта ручка? Если мы это знаем, возможно, мы сможем предложить обходной путь, но обычно использование этого собственного дескриптора приводит к плохим вещам.
0
ctacke 28 Янв 2014 в 03:26
Спасибо за ответ. Путь, который я использовал, приведен только для примера. Извини за это . CF Filestream не предоставляет дескриптор файла. Это приводило к неразберихе. Спасибо, что подняли этот вопрос. Я найду альтернативное решение.
 – 
Prasaanth
28 Янв 2014 в 08:44