PEgar o diretorio de uma class library

14/01/2013

0

Bom dia,

Estou co um projeto onde há uma class library responsavel pelo acesso ao banco (SQLite) e é o ponto comum entre 2 projetos que precisam compartilhar o mesmo arquivo de configuração (SQLite).

Portanto eu queria deixar o arquivo sqlite dentro da pasta bin\debug dessa class library.

String programa = Assembly.GetExecutingAssembly().Location;
      String pastaSistema = programa.Substring(0, programa.LastIndexOf('\\'));
      conn = new SQLiteConnection(@"data source="+ pastaSistema + @"\BancoConfiguracao.s3db");


Porem quando eu faço isso ele pega a pasta Debug da aplicação e não da class library...
Qualquer ajuda é bem vinda, obrigado
Gustavo Henrique

Gustavo Henrique

Responder

Posts

15/01/2013

Robson Alves

Se alterou o nome da pasta tem que alterar no código!

essa é a extensão correta do arquivo de banco SQLite *.s3db ?

Enquanto o FileDirectory retornar null, quer dizer que não tem nenhum arquivo com essa extensão dentro da pasta!

Estamos quase lá.


Se não entrar no If, quer dizer q nem encontrou a pasta.
Responder

15/01/2013

Gustavo Henrique

Então ele nem entra no if.

if (Directory.Exists("Banco"))


Sim, o SQLite gera um arquivo com essa extensão
Amanhã cedo eu volto a tentar novamente, pegar o caminho de casa agora!
Obrigado pela ajuda Robson, qualquer novidade amanhã eu já posto!
Responder

15/01/2013

Robson Alves

Opa! Boa viajem e descanso ;) (minha jornada ainda vai até mais tarde)
Responder

16/01/2013

Gustavo Henrique

Robson,

Veja isso

            string file = (new System.Uri(Assembly.GetExecutingAssembly().CodeBase)).AbsolutePath;
            FileInfo fi = new FileInfo(file);
            string conexao = fi.DirectoryName;
            conexao += @"\Banco\BancoConfiguracao.s3db";


Ele pega o endereço da DLL da class library, depois pega apenas o nome do diretorio onde esta a dll (ele vai até bin\debug)
depois eu coloquei o nome da pasta do banco e o banco! Vou testar aqui e posto o resultado, mas debugando foi de boa!!

=D
Responder

16/01/2013

Gustavo Henrique

Me enganei, ele ainda continua pegando a DLL que foi gerada na aplicação e não na dll da class library :/
Passei o dia todo fuçando isso e nada, estou quase desistindo!!!
Responder

16/01/2013

Robson Alves

Puxa, não consigo entender como não está conseguindo, nos meus testes, ele lê os arquivos da pasta e em seguida cria a conexão com o banco de dados, sem problemas! :/
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar