VBA - kodowanie nazwy pliku

1

Cześć,
Mam makro, które zmienia mi zawartość pliku na csv z kodowaniem UTF-8 bez BOM i to działa poprawnie.
Natomiast nie do końca potrafię ograrnąć nazwę pliku (pliki zapisuję na serwerze unixowym) i wygląda to tak:

  • przeglądając zawartość katalogu na serwerze przez windowsowego explorera widzę taką nazwę pliku: DID2ZV~D
  • przeglądając serwer za pomocą np. WinSCP mam taką: ddp_sm_test1.

Sprawdzając na innym kompie i zapisując plik za pomocą poniższego makra plik bezpośrednio na serwerze mam nazwę jak w pierwszym przypadku. Zapisując plik najpierw lokalnie na kompie, a potem kopiując na serwer - jest ok.

Jak to ogarnąć? Najlepiej by było, żeby nazwa pliku była w kodowaniu UTF-8 bez BOM.
Kody mam mniej więcej takie:

Dim objStream
Set objStream = CreateObject("ADODB.Stream")

Dim sFileSaveName As Variant

With objStream
        .Open
        .Position = 0
        .Charset = "UTF-8"
        .Type = 1
End With
sFileSaveName = Application.GetSaveAsFilename
If (sFileSaveName <> False) Then
        objStream.SaveToFile sFileSaveName, 2
End If
objStream.Close
0

Wygląda, że tutaj jest rozwiązanie.

0

Tylko mi właśnie nie chodzi o zawartość pliku, bo to mam ogarnięte. Chodzi mi o samą nazwę pliku...

0

Tutaj masz również zapisywanie pobranej nazwy - być może działa jak napisał autor.

0

W taki sam sposób mam to zapodane u siebie.... Tak jak mówię. Zapisując plik lokalnie - nazwa jest ok, przy podaniu ścieżki zapisu bezpośrednio na serwer - wtedy jest problem, tzn przez win explorera nazwa wygląda "dziwnie", przez WinSCP jest ok (z tym, że niepokoi mnie ta kropka na końcu nazwy pliku...) "ddp_sm_test1."

0

Jaką opcję podajesz przy wysyłaniu na server na obydwu programach?

Docs, docs, docs, docs, docs, docs (wmi).

Jeśli coś, to jest coś takiego jak psExec, nie wiem; może to byłoby OK?
https://docs.microsoft.com/en-us/sysinternals/downloads/psexec

1 użytkowników online, w tym zalogowanych: 0, gości: 1