none
關於加入其他資源到封裝cab檔及存取其中檔案的問題 RRS feed

  • 問題

  • 想請問一下就是我想要在我的cab檔中放置除了程式以外的資源檔(txt文字檔),因為我寫的程式會有需要用到檔案讀取,而這個檔案不是裝置上原本就有的,而是我想一同包在cab檔的,如果想完成這樣子的功能我應該要如何作呢?(封裝時的設定或是?)  另一個問題是我要怎麼存取包在cab中的檔案,路徑應該要怎麼設定?

     

    先在這邊感謝各位的觀看及回答

    2007年12月27日 上午 09:01

解答

  • Hi,

    封包專案您可以看到左右兩側都有列表,左邊是目錄結構,在"應用程式資料夾"點一下,之後在右邊您就可以看到"應用程式資料夾裡面包含了哪些東西;在這邊您可以點選右鍵,看是要加入資料夾或是檔案,之後封包檔就會內含這些檔案了。

     

    程式存取上跟一般應用程式是一樣的,比如說一般要存取一個叫做123.txt的設定檔案(設定檔案跟執行檔位於同一個位置),我們會用application.StartupPath & "\123.txt" 這樣的方式取得檔案路徑,由於在智慧型裝置中並不支援application.StartupPath,所以我們改一下,用法很類似

    取得執行檔路徑

    Public Function GetAppPath() As String
            Return System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString)
    End Function

     

    用法就是 GetAppPath & "\123.txt"

    2007年12月27日 上午 09:17
    版主

所有回覆

  • Hi,

    封包專案您可以看到左右兩側都有列表,左邊是目錄結構,在"應用程式資料夾"點一下,之後在右邊您就可以看到"應用程式資料夾裡面包含了哪些東西;在這邊您可以點選右鍵,看是要加入資料夾或是檔案,之後封包檔就會內含這些檔案了。

     

    程式存取上跟一般應用程式是一樣的,比如說一般要存取一個叫做123.txt的設定檔案(設定檔案跟執行檔位於同一個位置),我們會用application.StartupPath & "\123.txt" 這樣的方式取得檔案路徑,由於在智慧型裝置中並不支援application.StartupPath,所以我們改一下,用法很類似

    取得執行檔路徑

    Public Function GetAppPath() As String
            Return System.IO.Path.GetDirectoryName(Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString)
    End Function

     

    用法就是 GetAppPath & "\123.txt"

    2007年12月27日 上午 09:17
    版主
  •  

    您好,目前問題已經順利解決,非常感謝你,不過中間有些曲折,首先我將這段 Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString直接放入之後會出現"名稱 'Reflection' 不存在於目前內容中",之後我判斷應該是namespace沒加入,之後我加入了using System.Reflection;,之後仍然出現相同錯誤訊息,然後我就將Reflection.Assembly.GetExecutingAssembly.GetName.CodeBase.ToString中的Reflection刪除,之後得到另一個錯誤訊息 " 'System.Reflection.Assembly.GetExecutingAssembly()' 是 '方法',這在給定的內容中是無效的" ,所以我最後將他改成 Assembly.GetExecutingAssembly().GetName().CodeBase,就沒問題了。

    2007年12月28日 上午 02:54
  • Dear Sir

    您是用C#嗎?因為我用的是basic,下面這篇是之前做的可以參考看看;討論區過去也有相關文章 ~

    http://bauann-makeit.blogspot.com/2007/11/mobile.html

     

    2007年12月28日 上午 05:56
    版主
  • 是的 我是用C#沒錯 謝謝您的回覆及連結

     

    2008年1月3日 上午 07:16