none
[VB2008]如何將資源檔複製到指定的位子 RRS feed

  • 問題

  • 如果使用
    My.Computer.FileSystem.WriteAllBytes("C:\123.txt",My.Resoures._1,False)
    顯示型別String無法轉成1為陣列Byte

    如果使用
    My.Computer.FileSystem.WriteAllText("C:\123.txt",My.Resoures._1,False)
    雖然複製成功但我本複製出來的副檔名改成CSV來看
    卻都是亂碼

    如果使用
    My.Computer.FileSystem.CopyFile(My.Resoures._1,"C:\123.txt",False)
    會顯示路徑中含有不合法字元

    請各位前輩指導

    VB初學者請大家多指教
    2009年11月26日 上午 03:03

解答

  • Hi,

    以您提供的資訊來看
    My.Resoures._1看起來應該是字串
    能用的應該是WriteAllText

    My.Computer.FileSystem.WriteAllText 方法

    函式原型如下
    Public Sub WriteAllText( _
       ByVal file As String, _
       ByVal text As String, _
       ByVal append As Boolean _
    )

    用法以MSDN來看應該是沒錯
    但用WriteAllText寫入檔案卻是亂碼
    也許您該告知您的My.Resoures._1值是怎摸填入的

    若確定是字串
    應該是編碼上的問題
    可改用File.WriteAllText方法
    帶入正確的Encoding

    File.WriteAllText Method (String, String, Encoding)
    Creates a new file, writes the specified string to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten.

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年11月26日 上午 04:42

所有回覆

  • My.Computer.FileSystem.WriteAllBytes("C:\123.txt",My.Resoures._1,False)

    My.Computer.FileSystem.WriteAllText("C:\123.txt",My.Resoures._1,False)

    My.Computer.FileSystem.CopyFile(My.Resoures._1,"C:\123.txt",False)
    你這三行都編譯得過??不可能吧............
    2009年11月26日 上午 03:55
  • Hi,

    以您提供的資訊來看
    My.Resoures._1看起來應該是字串
    能用的應該是WriteAllText

    My.Computer.FileSystem.WriteAllText 方法

    函式原型如下
    Public Sub WriteAllText( _
       ByVal file As String, _
       ByVal text As String, _
       ByVal append As Boolean _
    )

    用法以MSDN來看應該是沒錯
    但用WriteAllText寫入檔案卻是亂碼
    也許您該告知您的My.Resoures._1值是怎摸填入的

    若確定是字串
    應該是編碼上的問題
    可改用File.WriteAllText方法
    帶入正確的Encoding

    File.WriteAllText Method (String, String, Encoding)
    Creates a new file, writes the specified string to the file using the specified encoding, and then closes the file. If the target file already exists, it is overwritten.

    謙卑學習,持之以恆,才能不斷的Level Up http://www.dotblogs.com.tw/larrynung/
    2009年11月26日 上午 04:42
  • 沒有都編譯的過押
    第一個方式編譯不過
    所以我有註明錯誤原因

    第二跟第三個方式可以編譯


    VB初學者請大家多指教
    2009年11月26日 下午 12:47
  • Dim z As Encoding = Encoding.Default
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        My.Computer.FileSystem.WriteAllText("C:\123.txt", My.Resources.test, False, z)
    End Sub
    謝謝前輩指導
    有成功試出^^

    VB初學者請大家多指教
    2009年11月26日 下午 12:55