Wczytywanie sciezki do pliku

0

Witam
Chce sobie napisac aplikacje w WF i napotkałem taki problem ze za pomoca openfiledialog otwieram plik i odczytuje jego nazwa za pomoca safefilename. Zapisuje to w zmiennej openedfile typu string i wpisuje ta zmienna w sciezce do filestream. Leczy gdy chce np odswiezyc to co wyswietla w pliku to wyrzuca ze sciezka nie moze byc zerowa.

Dalem specjalnie zeby wyswietlilo mi wczesniej messagebox z nazwa pliku i wyswietla poprawnie czyli wczytuje ok. Lecz pozniej sie psuje:/

1

Ja rozwiązałem to tak zrobiłem z toolboxa FolderBrowsingDialog i napisałem tam

 
public partial class Form1 : Form
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();

To jest przed forma następnie utworzyłem richtextbox i dałem mu cos takiego(jakby co fbd to nazwa zmiennej)

 
richTextBox1.Text = (fbd.SelectedPath + "\\Nazwa Folderu");

a wczesniej dodałem

 
fbd.RootFolder = Environment.SpecialFolder.Desktop;

oznacza to że startowy folder to będzie pulpit

0

mi nie chodzi o sam folder tylko o dokladnie jeden plik

0

No to to własnie jest ta "Nazwa Folderu" w 2 kodzie w c# tam możesz dac jaki folder tylko chcesz i za pomoca komend manipulować nim

0

ale chce otworzyc plik txt i na nim dzialac
dopisywac do niego i wyswietlac zawartosc

i potrzebuje tylko sciezke do tego pliku

0

To, przepraszam z tego co wiem da się zrobić to w c++ bardzo prosto ale ci nie pomogę bo sam szukam pomocy w tym zakresie.

0

Ok spoko

ktos cos ?

EDIT

ok znalazlem problem a jest taki ze nie otwiera pliku takiego jakie chce tylko po prostu tak jakby openfiledialog nie pobieralo nic

0

A my mamy oczywiście wywróżyć co masz nie tak, bo kodu podać nie raczysz?

0

Scieżka siedzi we właściwości FileName.

0
somekind napisał(a):

A my mamy oczywiście wywróżyć co masz nie tak, bo kodu podać nie raczysz?

kurcze sorry :(

zaraz dorzuce kod

Wczytywanie pliku

private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
        {
            openedfile = openFileDialog1.SafeFileName;
            MessageBox.Show(openedfile);
        } 

Wyswietlanie tego co w pliku

private void refresh_Click(object sender, EventArgs e)

    {
            Choose_file chf = new Choose_file();
            MessageBox.Show(chf.openedfile);
            using (FileStream fr = new FileStream(chf.openedfile, FileMode.Open, FileAccess.Read))
            {
                StreamReader sr = new StreamReader(fr);
                string text = sr.ReadToEnd();
                string[] lines = text.Split('\r');
                foreach (string s in lines)
                {
                    listBox1.Items.Add(s);
                }
                refresh.Enabled = false;
            }




    } 

Problem zdiagnozowalem taki ze po pobraniu pliku Od razu w zmiennej nazwa pliku sie znajduje, lecz przy wyświetaniu (nacisnieciu przycisku refresh) zmienna jest juz pusta.

0

A czym jest Choose_file i czemu tworzysz jego nowy obiekt po kliknięciu w przycisk?
I czemu używasz SafeFileName, a nie FileName?

0

Choose_file to jest nowy form a Tworze jego obiekt bo musze sie odwolac jakos do zmiennej ktora jest w tym formie

2

I w efekcie odwołujesz się do pustej ścieżki z nowego obiektu, a nie do tej, którą chciałeś wybrać.
Poczytaj o podstawach obiektów, a potem o tym jak przekazywać dane między obiektami różnych Form.

0
somekind napisał(a):

I w efekcie odwołujesz się do pustej ścieżki z nowego obiektu, a nie do tej, którą chciałeś wybrać.
Poczytaj o podstawach obiektów, a potem o tym jak przekazywać dane między obiektami różnych Form.

Ok ale mozesz mnie jakos naprowadzic choc troche

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