Avatar billede Slettet bruger
03. juli 2009 - 09:08 Der er 6 kommentarer og
1 løsning

Fejler ved push til UNC path

Har et program som skal skyde noget til en UNC path. Det fejler, hvis man prøver. Der er ingen problemer, hvis man skyder outputet til en lokal disk. Nogen som kan hjælpe. Min kode ser sådan ud


  private void tmStartup_Tick(object sender, EventArgs e)
        {
            this.tmStartup.Enabled = false;
            string firstPath = ConfigurationManager.AppSettings["Path.FirstPart"];           
            foreach (NodeTag tag in tags)
            {
                string initials = tag.initials;
                string testPath = System.IO.Path.Combine(firstPath, initials);
                if (!System.IO.Directory.Exists(testPath))
                    System.IO.Directory.CreateDirectory(testPath);
                string html = Utilities.GenerateUserHtml(tag, templateFile);
                string targetFileName = System.IO.Path.Combine(testPath, testignatureName + ".htm");
                System.IO.File.WriteAllText(targetFileName, html, System.Text.Encoding.UTF8);
                //Boolean result = Utilities.ProcessFile(targetFileName);               
                Boolean result = testPusher.WordFunctions.Functions.ProcessFile(targetFileName);
                AddStatus("test pushed: " + initials);               
            }           
        }
Avatar billede bvli Praktikant
03. juli 2009 - 09:25 #1
Hvilken fejl får du?
Avatar billede Slettet bruger
03. juli 2009 - 12:22 #2
Fungere nu ???? Ved ikke lige hvad der sker....

Men hvis jeg skriver en forkert netværks-sti i min app.config

Så får jeg en IOException was unhandle by user code
The network name cannot be found.

Hvordan går jeg ind og spørger til om netværket eksistere og hvis det ikke eksistere, så skal programmet komme med en fejl..

Jeg er stadig ny her i kodeverden, så undskyld hvis jeg spørger for meget
Avatar billede bvli Praktikant
03. juli 2009 - 13:12 #3
Mon ikke det er din:

Directory.CreateDirectory(...)

- der fejler?

Prøv at pakke den ind i en try/catch og skriv en pæn fejlmeddelelse hvis den smider en IOException.
Avatar billede Slettet bruger
03. juli 2009 - 14:05 #4
Det er der den fejler. Med denne fejl besked
Unhandled Exception: System.IO.IOException: The network path was not found.

Hvordan spørger jeg ind til om det network path, som bruger har skrevet eksistere?
Avatar billede bvli Praktikant
03. juli 2009 - 16:03 #5
Der er ikke en direkte måde til det i .NET. Enten kan du lave noget interop - eller også kan du lave en lidt dirty "NetworkShareExist(string path)-metode"

F.eks:
Check om path'en er path-rooted (Path.IsPathRooted)
Check om path'en er unc (starter med "\\")
find share-navnet (første directory efter servernavn)
Lav en File.Exist(..) på share-navnet.

Hvis ikke det findes så er server eller sharenavn eller begge forkerte.
Avatar billede Slettet bruger
06. juli 2009 - 07:53 #6
Fik klaret det på denne måde.

try
                {
                    string firstPath = ConfigurationManager.AppSettings["Path.FirstPart"];
                    if (String.IsNullOrEmpty(firstPath) || !System.IO.Directory.Exists(firstPath))                                   
                        System.IO.Directory.CreateDirectory(firstPath);
                    this.Cursor = Cursors.WaitCursor;
                }
           
                catch (Exception exx)
                {
                    MessageBox.Show(String.Format("Error! {0}", exx.Message));
                }

Men laver du lige et svar bvli så får du pointene :)

Og lige som det sidste tillægs spørgsmål.

Når jeg laver en alm. messagebox
MessageBox.Show("Write something)", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

Er der mulighed for at smide et Error Icon på min catch messagebox?
Avatar billede bvli Praktikant
06. juli 2009 - 12:44 #7
Hej igen.

Jeg ville nok vælge ikke at kalde CreateDirectory(firstPath) hvis du ved stien er "NullOrEmpty". Men det er ihvertfald en løsning :)

Men jeg forstår ikke helt dit tillægsspørgsmål. Der er en syntaksfejl, men den overload jeg tror du vil bruge, giver dig da et error-ikon?

MessageBox.Show("text","caption", MessageBoxButtons.OK, MessageBoxIcon.Error);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester