Zapisanie pliku w konkretne miejsce.

0

Bazując się na tym linku:
https://stackoverflow.com/questions/8606793/how-do-i-convert-streamreader-to-a-string
nie bardzo wiem jak przerobić swoją linię na to, żeby przekonwertować typ.

StreamReader sciezka = Path.Combine(sciezkadoZapisu, "SubFolder");  // sciezkadoZapisu to StreamReader, a ja potrzebuję żeby był stringiem
1

Pokaż cały kod, bo coś tu namieszane jest.

0

No nie.

0

@adam.filipek:

string liniaTekstu;
            StreamReader plik = ZarzadzaniePlikami.WczytajPlik(sciezkaPliku);
            StreamReader sciezkadoZapisu = ZarzadzaniePlikami.WczytajPlik(sciezkaPliku);
            string sciezka = Path.Combine(sciezkadoZapisu, "SubFolder");
            while ((liniaTekstu = plik.ReadLine()) != null)
            {
                if (usunKomentarze == true)
                {
                    int indexKomcia = liniaTekstu.IndexOf("//");
                    if (indexKomcia != -1)
                    {
                        liniaTekstu = liniaTekstu.Substring(0, indexKomcia);
                    }
                }
            }
            Directory.CreateDirectory(sciezka);
            plik.Close();
        }
1
string sciezka = Path.Combine(sciezkadoZapisu.ReadToEnd(), "SubFolder");
0

@adam.filipek:
A to? Chciałem zrobić taki myk

string sciezka = Path.Combine(sciezkadoZapisu.ReadToEnd(), "SubFolder", Encoding.UTF8);

jednak zaś krzyczy, że konwertowanie. Jakieś pomysły?

1

Przerzuć zawartość StreamReadera do tymczasowego stringa i podejrzyj debugerem co jest w tym stringu.

string tmpStr = sciezkadoZapisu.ReadToEnd();

a coś takiego:

string sciezka = Path.Combine(sciezkadoZapisu.ReadToEnd(), "SubFolder", Encoding.UTF8);

nie może zadziałać, Path.Combine przyjmuje dwa argumenty (stringi)

1

Dziwne myki chcesz robić.
Chodzi Ci o odczyt pliku, przetworzenie zawartości i zapisanie do nowej lokalizacji? I problem jest z określeniem ścieżki zapisu?
Ścieżkę zapisu określaj na podstawie ścieżki odczytu i podfolderu (bo chyba o to Ci chodzi). Ze śceiżki odczytu odczytaj tylko folder i wtedy Combine z "SubFolder".
No i obsługa samego zapisywania.

1

Może właśnie zacznij od tego, co chcesz osiągnąć.

0

Ogólnie zamysł jest taki, chcę zapisywać mój plik do danego folderu. Do folderu, który się tworzy w miejscu, z którego wziąłem plik.

3
            OpenFileDialog ofd = new OpenFileDialog();
            if (ofd.ShowDialog() != DialogResult.OK) return;           

            string filePath = ofd.FileName; // scieżka do Twojego pliku
            string directoryPath = Path.GetDirectoryName(filePath); // scieżka do folderu gdzie znajduje się dany plik
            string subdirectoryPath = Path.Combine(directoryPath, "subdirectory"); // sciezka folderu wewnątrz folderu z plikiem
            if (!Directory.Exists(subdirectoryPath)) Directory.CreateDirectory(subdirectoryPath); // tworzenie subfolderu
            string newFilePath = Path.Combine(subdirectoryPath, "newFileName"); // ścieżka do nowego pliku

filePath inicjujesz inaczej, to tylko przykład, no i oczywiście pierwsze linie można skrócić do:

 string subdirectoryPath = Path.Combine(Path.GetDirectoryName(filePath), "subdirectory");

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