USAR CURINGA EM CAMINHO DO ARQUIVO
Caros colegas, boa tarde!
Estou com o seguinte problema:
Coloquei um script no outlook que ao receber o e-mail com xml da nf-e ele salva no diretório c:
fe, e meu sistema que é de emissão de CT-e importo a NF-e apenas digitando a chave de acesso da nf-e, mas os clientes que emitem a nf-e não seguem um padrão ao nomear os arquivos com isso as vezes o sistema informa que xml não encontrado, mas na verdade o nome é que está diferente.
Exemplos:
NFe+ChavedeAcesso+.xml
ChaveDeAcesso-nfe+.xml
ChaveDeAcesso-Procnfe+.xml
Gostaria de saber se é possivel, utilizar curingas no caminho do arquivo.
Por exemplo:
[Ô]c:
fe\[Ô] & curinga & chavedeacesso & curinga & [Ô].xml
Desde já agradeço a atenção.
Abraços.
Estou com o seguinte problema:
Coloquei um script no outlook que ao receber o e-mail com xml da nf-e ele salva no diretório c:
fe, e meu sistema que é de emissão de CT-e importo a NF-e apenas digitando a chave de acesso da nf-e, mas os clientes que emitem a nf-e não seguem um padrão ao nomear os arquivos com isso as vezes o sistema informa que xml não encontrado, mas na verdade o nome é que está diferente.
Exemplos:
NFe+ChavedeAcesso+.xml
ChaveDeAcesso-nfe+.xml
ChaveDeAcesso-Procnfe+.xml
Gostaria de saber se é possivel, utilizar curingas no caminho do arquivo.
Por exemplo:
[Ô]c:
fe\[Ô] & curinga & chavedeacesso & curinga & [Ô].xml
Desde já agradeço a atenção.
Abraços.
*ChaveDeAcesso*.xml
Amigo, existem várias formas de fazer isto.
Você pode tratar ou transformar o nome do arquivo. Deixar somente a chave de acesso .xml, ou fazer com que seu sistema entenda que ele possa aceitar qualquer arquivo com a extensão .xml e no momento da leitura, verificar se o mesmo é de NF-e.
Você poderia renomear o arquivo, usando uma simples expressão.
Dim arquivo As String = [Ô]chaveAcesso-ProcNFe.xml[Ô]
IO.File.Copy(arquivo, arquivo.Replace([Ô]-[Ô], [Ô][Ô]).Replace([Ô]ProcNFe[Ô], [Ô][Ô]).Replace([Ô]NFe[Ô], [Ô][Ô]))
Isto é uma forma, você pode aprimorar ou criar a sua.
Você pode tratar ou transformar o nome do arquivo. Deixar somente a chave de acesso .xml, ou fazer com que seu sistema entenda que ele possa aceitar qualquer arquivo com a extensão .xml e no momento da leitura, verificar se o mesmo é de NF-e.
Você poderia renomear o arquivo, usando uma simples expressão.
Dim arquivo As String = [Ô]chaveAcesso-ProcNFe.xml[Ô]
IO.File.Copy(arquivo, arquivo.Replace([Ô]-[Ô], [Ô][Ô]).Replace([Ô]ProcNFe[Ô], [Ô][Ô]).Replace([Ô]NFe[Ô], [Ô][Ô]))
Isto é uma forma, você pode aprimorar ou criar a sua.
Ou simplesmente tentar desserializar qualquer arquivo xml que chegar, como o GUIMORAES123 sugeriu
Obrigado a todos, estava usando como segue:
If File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]) Then
cXml = [Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]
Else
MessageBox.Show([Ô]NF-e não encontrada![Ô], [Ô]Mensagem do Sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Vou fazer como GUIMORAES123 sugeriu, no script do outlook vou deixar somente a chave.
Abraços e até mais
If File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-NFe.xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]) Then
cXml = [Ô]c:\NFE\NFE[Ô] & txtChavenf.Text & [Ô].xml[Ô]
ElseIf File.Exists([Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]) Then
cXml = [Ô]c:\NFE\[Ô] & txtChavenf.Text & [Ô]-procNfe.xml[Ô]
Else
MessageBox.Show([Ô]NF-e não encontrada![Ô], [Ô]Mensagem do Sistema[Ô], MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End If
Vou fazer como GUIMORAES123 sugeriu, no script do outlook vou deixar somente a chave.
Abraços e até mais
Tópico encerrado , respostas não são mais permitidas