ListDirectory i polskie znaki

ListDirectory i polskie znaki
mto9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 380
0

Witam, napisałem sobie prostą funkcję do pobrania listy folderów/plików z FTP :

Kopiuj
public static List<String> ListDirectory(String path)
        {
            FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(ConfigVar.FTP.Host + "/" + path);
            ftpWebRequest.EnableSsl = ConfigVar.FTP.EnableSsl;
            ftpWebRequest.Credentials = new NetworkCredential(ConfigVar.FTP.Login, ConfigVar.FTP.Password);
            ftpWebRequest.Method = WebRequestMethods.Ftp.ListDirectory;

            FtpWebResponse ftpWebResponse = (FtpWebResponse)ftpWebRequest.GetResponse();
            StreamReader streamReader = new StreamReader(ftpWebResponse.GetResponseStream(), Encoding.UTF8);

            List<String> listDirectory = new List<String>();

            String directory = streamReader.ReadLine();
            while (!String.IsNullOrEmpty(directory))
            {
                listDirectory.Add(directory);
                directory = streamReader.ReadLine();
            }
            streamReader.Close();

            return listDirectory;
        }

Lecz mam problem z polskimi znakami dla przykładu dla pliku "Bez tutułu.png" dostaje "Bez?tutu?u.png" :( dodałem w streamReader kodowanie na UTF8 lecz to nic nie zmieniło :( jest jakiś sposób na rozwiązanie mojego problemu ?

M7
  • Rejestracja: dni
  • Ostatnio: dni
0

a dlaczego UTF-8? pewnie tam jest inne kodowanie...

mto9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 380
0

Dałem dla przykładu UTF8, próbowałem też kilka innych i nic, istnieje jakiś sposób na samoczynne wykrywanie kodowania ?

M7
  • Rejestracja: dni
  • Ostatnio: dni
0

może to serwer przesyła w takiej postaci i już nic z tym nie zrobisz, widzę dwie opcje:

  1. przekonwertuj przychodzący stream na hex i przeklej tu co tam przyszło
  2. nie znam na tyle protokołu FTP, może serwerowi trzeba wysłać akceptowane kodowania? zobacz czy nie ma jakiegoś property które można by ustawić przed nawiązaniem połączenia
mto9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 380
0

Problem rozwiązany, a rozwiązanie banalne :D

Wystarczyło dać kodowanie na: Encoding.Default :) ale dzięki za szybką reakcje.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.