2013-05-29 62 views
0

首次嘗試使用VB.NET應用程序。我正嘗試創建一個應用程序來複制應用程序的標準配置,然後爲該用戶自定義某些設置。我大部分的應用程序工作正常,但我遇到了資源文件的問題。將資源複製到磁盤

因爲文件的數量可能會更改我正在使用我的資源的子文件夾。我將文件設置爲內​​容並始終複製。我可以得到以下代碼在調試中工作,但似乎我沒有正確地進行構建。

For Each strFile In Directory.GetFiles(".\Files") 

     If Path.GetExtension(Path.GetFileName(strFile)) = ".vbs" Then 
      strDestination = strDataPath & "Scripts\" 
     Else 
      strDestination = strDataPath 
     End If 
     If Not Directory.Exists(strDestination) Then 
      Directory.CreateDirectory(strDestination) 
     End If 

     If My.Settings.chkForceOverwrite = True Then 
      Try 
       File.Copy(strFile, strDestination & Path.GetFileName(strFile), True) 
      Catch ex As Exception 
       Console.WriteLine(ex.Message) 
      End Try 
     Else 
      Try 
       File.Copy(strFile, strDestination & Path.GetFileName(strFile), False) 
      Catch ex As Exception 
       Console.WriteLine(ex.Message) 
      End Try 
     End If 
    Next 

我已經嘗試了幾種複製數據的方法,但我發現沒有任何兼容性,如下所示。

Dim strFileName As String = Path.GetFileNameWithoutExtension(strFile) 
File.WriteAllBytes(strDestination & strFile, My.Resources.strFileName, True) 

有人能指出我在正確和正確的方向做到這一點嗎?目前,文件類型爲1 .vbs和1 .exe.config文件,但我可能需要在將來添加不同的文件類型。

+0

什麼樣的結果,從這個代碼嗎? – matzone

+0

你指的是File.WriteAllBytes? 'strFileName'不是'資源'的成員 –

+0

不,第一個代碼..是否會產生不想要的結果? – matzone

回答

0

關於這個代碼..

File.WriteAllBytes(strDestination & strFile, My.Resources.strFileName, True) 

如果你訪問某些特定的文件夾,如桌面和應用程序,從資源獲取,讓你像這樣

File.WriteAllBytes(My.Computer.FileSystem.SpecialDirectories.Desktop & "\" & strFile, My.Resources.ResourceManager.GetObject(strFileName), True) 
+0

我試圖使用File.WriteAllBytes代替副本,因爲它看起來像是正確的方式來完成這個工作,但是我得到''strFileName'不是'Resources'的成員,因爲錯誤。我該如何解決這個問題或解決它? –

+0

@SChase:它已更新..試試 – matzone

+0

看起來不錯,在我卸下「,True」之後,它不再有錯誤。我該如何修復文件數組以查看資源中的\ Files?For Each strFile在Directory.GetFiles(「。\ Files」)會成爲每個strFile InMy.Resources.ResourceManage r.GetResourceSet(「\ Files)或類似的東西? –

0

看來問題是此行For Each strFile In Directory.GetFiles(".\Files")

。\文件指的是當你移動.exe文件不存在的相對路徑。

+0

這是一個相對路徑.exe作爲一個已保存的資源,我只是找不到一個關於如何可靠地訪問資源的答案 –