Inquiridor
Copiar arquivo da pasta RESOURCES para outra pasta

Pergunta
-
Estou me batendo para tentar copiar um arquivo da pasta RESOURCES para outra pasta no computador com o VB 2008 Express. Alguém, por caridade, poderia dar uma luz?
- Movido AndreAlvesLimaModerator terça-feira, 17 de abril de 2012 10:36 (De:Onde devo postar minha dúvida?)
Todas as Respostas
-
Estou me batendo para tentar copiar um arquivo da pasta RESOURCES para outra pasta no computador com o VB 2008 Express. Alguém, por caridade, poderia dar uma luz?
- Mesclado AndreAlvesLimaModerator quarta-feira, 18 de abril de 2012 19:55 duplicado
-
Marcelo,
Poderia dar maiores detalhes do que você está tentando fazer? Você quer simplesmente copiar um arquivo da pasta de Resources para outro lugar? Se sim, qual é o problema? Você nao está conseguindo?
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Prezado(a),
Estou migrando seu post para o fórum de Visual Studio Geral.
Por favor, das próximas vezes que tiver alguma dúvida relacionada a esse assunto, poste por lá.
Obrigado.André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslima -
Marcelo,
Poderia dar maiores detalhes do que você está tentando fazer? Você quer simplesmente copiar um arquivo da pasta de Resources para outro lugar? Se sim, qual é o problema? Você nao está conseguindo?
André Alves de Lima
Microsoft MVP - Client App Dev
Visite o meu site: http://www.andrealveslima.com.br
Me siga no Twitter: @andrealveslimaVeja bem. Como a minha aplicação usa banco de dados access 2007, adicionei uma cópia deste na pasta RESOURSES e no LOAD do form fiz assim:
If Not My.Computer.FileSystem.FileExists(Application.StartupPath & "\GSDB.accdb") Then If MessageBox.Show("Um Erro impediu que o aplicativo tivesse acesso ao banco de dados. Isto pode ter ocorrido em função de que o banco de dados não esteja disponível no diretório do programa. Certifique se de que o banco de dados esteja no diretório do executável e tente novamente. VOCÊ PODE CRIAR UM NOVO ARQUIVO DE BANCO DE DADOS. DESEJA CRIAR UM NOVO ARQUIVO AGORA?", "Erro na conexão do banco de dados", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = Windows.Forms.DialogResult.Yes Then form2.Show() Else Application.ExitThread() Application.Exit() End If End If
Então nesta form que é chamada (form2) tem uma função responsável pela cópia deste banco de dados para o diretório da aplicação:Public Sub SaveToDisk(ByVal resourceName As String, ByVal fileName As String) Dim assy As [Assembly] = [Assembly].GetExecutingAssembly() For Each resource As String In assy.GetManifestResourceNames() If resource.ToLower().IndexOf(resourceName.ToLower) <> -1 Then Using resourceStream As Stream = assy.GetManifestResourceStream(resource) If resourceStream IsNot Nothing Then Using reader As New BinaryReader(resourceStream) Dim buffer() As Byte = reader.ReadBytes(CInt(resourceStream.Length)) Using outputStream As New FileStream(fileName, FileMode.Create) Using writer As New BinaryWriter(outputStream) writer.Write(buffer) End Using End Using End Using End If End Using Exit For End If Next resource End Sub
Então chamo a rotina assim:
SaveToDisk("1", Application.StartupPath & "\GSDB.accdb")
Ele até copia o banco de dados, porém, nem sempre copia do jeito correto. Às vezes o banco fica somente com 1kb (corrompido) e sem serventia. Algyém conhece uma maneira melhor para este tipo de manobra?
- Editado MarceloTEK quarta-feira, 25 de abril de 2012 08:20