• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

2 Messageboxy przy nadpisaniu pliku tekstowego

VPS Starter Arubacloud
+1 głos
298 wizyt
pytanie zadane 2 lutego 2019 w C# przez Striker Ninja Początkujący (480 p.)

Witam.

Zacząłem bawić się w zapisywanie zawartości textBox do pliku tekstowego. Zrobiłem SaveFileDialog, który otwiera oczywiście okno z zapisem i wszystko ładnie działa. Problem mój polega na tym, że przy próbie nadpisania pliku .txt wyświetlają się 2 messageboxy z zapytaniem czy nadpisać plik:

W zwykłym notatniku np. tego drugiego messagebox'a nie ma przy nadpisywaniu. Trochę kombinowałem i nie wiem jak zaradzić, żeby ten drugi messagebox się nie pojawiał.

Kod do funkcji:

        private void zapiszToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog sv = new SaveFileDialog();
            sv.Filter = "Dokumenty tekstowe(*.txt)|*.txt|Wszystkie pliki(*.*)|*.*";
            if (sv.ShowDialog() == DialogResult.OK)
            {
                System.IO.File.WriteAllText(sv.FileName, textBox1.Text);
                this.Text = sv.FileName;
            }
        }

Bawiłem się jeszcze StreamWriterem, ale problem był ten sam.

1
komentarz 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
1. Wersja .Net jaka twoja jest?

2. Czy uruchamiałeś tę funkcję w nowym projekcie (zawierającym tylko niezbędne do uruchomienia minimum i tę funkcję) i również zachowuje się tak samo?
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
1. Wersja .NET to 4.6.1

2. Tak, zrobiłem to przed chwilą i dzieje się to samo. Nawet zmiana wersji .NET projektu nie daje nic
1
komentarz 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
Czy możesz w takim razie udostępnić ten projekt? Bo u mnie na 4.5.2 oraz 4.6.1 wszystko działa bez zarzutu.
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
komentarz 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
No to mamy problem. U mnie wszystko to działa bez zarzutu. Na pewno wyczyściłeś rozwiązanie (Clean solution) przed nowym uruchomieniem?

 

P.S. Jak robisz nową aplikację to polecam jednak robić ją w WPF, WinForms to trochę stara technologia...
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
Zrobiłem nowy pusty projekt i włożyłem tam do niego tylko textboxa i button'a z tą funkcją. I dzieje się to samo.
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
przeniesione 4 lutego 2019 przez Striker Ninja
Wrzuciłem tą aplikację na swój tablet i tam nie ma tego problemu oO. Wina musi leżeć gdzieś po stronie mojego sprzętu na, którym pisałem ten projekt, ale dziwne to jest, bo inne programy przy nadpisywaniu pliku nie zachowują się tak (tzn. wyświetlają tylko jeden messagebox z zapytaniem).
komentarz 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
jaką masz wersję Windows? Dokładnie numer build'a poproszę :).
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
Microsoft Windows [Version 10.0.17763.253]
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
Sorki, już zmieniłem
komentarz 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
Zedytowałem swoją odpowiedź, według Microsoft należy zainstalować łatkę :).

1 odpowiedź

+1 głos
odpowiedź 4 lutego 2019 przez MikDal Mądrala (5,660 p.)
wybrane 4 lutego 2019 przez Striker Ninja
 
Najlepsza

Takie zachowanie nie jest normalne (mam nadzieję, że dojdziemy do jego źródła i mu zaradzimy – wtedy edytuję tę odpowiedź).

Doraźnym rozwiązaniem problemu będzie usunięcie zapytań o nadpisanie. SaveFileDialog pozwala na to za pomocą SaveFileDialog.OverwritePrompt oraz SaveFileDialog.CreatePrompt.

Nie jest to rozwiązanie rekomendowane przeze mnie jeśli chcesz, aby pytanie o nadpisanie zostało – dlatego, że na innej maszynie (np. mojej) taki błąd nie występuje i po usunięciu pytania o nadpisanie plik zostałby zmieniony możliwie bez mojej wiedzy.


EDYCJA:

Zgodnie z tym wątkiem na forum pomocy Microsoft problem lezy w najnowszej aktualizacji Windowsa 10 1809 bez najnowszych łatek (sam mam tę wersję instalowaną przed kilkunastoma dniami i wszystko działa). Także polecam zaktualizować system przez Windows Update bądź ściągnąć łatkę kb4481031.

komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)
Dziękuje. Ten projekt edytowałem kilkakrotnie i możliwe, że ja coś zapomniałem gdzieś usunąć/zmienić. Będę się głowił nad tym dalej.
komentarz 4 lutego 2019 przez Striker Ninja Początkujący (480 p.)

@MikDal,
 Teraz działa. Jest zaktualizowane do najnowszej wersji i już problem nie występuje

Podobne pytania

+1 głos
1 odpowiedź 322 wizyt
–1 głos
1 odpowiedź 422 wizyt
0 głosów
2 odpowiedzi 863 wizyt
pytanie zadane 2 sierpnia 2018 w C i C++ przez wihajster Początkujący (460 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...