2014-01-24 22 views
0

我試圖獲得使用System.IO.FileStream類創建的文件句柄的值。FileStream.handle在CE-ARM發行版配置中不起作用

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

這裏有一些事情正在進行。

  1. Windows中的目錄(桌面和CE)由反斜槓'\'字符分隔,而不是正斜槓。桌面Windows可能不介意,但Windows CE不會喜歡它。
  2. Windows CE沒有驅動器字母(或當前目錄)的概念,因此您的路徑也因此而無效。
  3. CF FileStream不公開文件句柄,我想說可能很好的理由。這是你看到的錯誤的具體原因。在管理流之外處理句柄會導致事物的管理方面陷入不確定狀態並導致不好的事情。爲什麼,確切地說,你需要那個句柄?如果我們知道,也許我們可以提出一種解決方法,但通常使用本地句柄會導致不好的事情發生。
+0

感謝您的回覆。我使用的路徑只是一個例子。對於那個很抱歉 。 CF Filestream不暴露文件句柄。這導致了所有的混亂。感謝您提出這一點。我會找到一個替代解決方案。 – Prasaanth