1. Lieber Benutzer,

    Du musst bei uns registriert sein, um an den Diskussionen teilzunehmen. Melde dich jetzt an - kostenfrei und unverbindlich. Und stelle Deine eigenen Fragen oder gib uns hilfreiche Antworten

dateien und ordner offnen

Dieses Thema im Forum "C/C++/C#, Java, Visual Basic" wurde erstellt von ben, 25 Januar 2010.

  1. ben

    ben Neues Mitglied

    Registriert seit:
    12 Juli 2009
    Beiträge:
    161
    Punkte für Erfolge:
    0
    hallo
    ich bin dabei ein kleines programm zu basteln das uberpruft ob dateien und odner existieren.
    Nun moechte ich aber auch das man diese dann offnen kann

    der Path wird in eine TextBox1 geschrieben

    fur datei offnen hab ich bisher
    Code (text):
    1. Shell(TextBox1.Text)
    funktioniert aber nur bei .exe dateien wie kann man das fur alle datei typen machen?

    und bei odnern hab ich
    Code (text):
    1. Shell("explorer.exe C:", vbNormalFocus)
    C: wird geoffnet aber wie macht man das der odner aus TextBox1 geoffnet wird?

    MfG ben
     
    Werbung: Jetzt registrieren, damit diese Werbung verschwindet
  2. JasonDelife

    JasonDelife Neues Mitglied

    Registriert seit:
    4 Juni 2009
    Beiträge:
    30
    Punkte für Erfolge:
    0
    Nimm die Start()-Methode von Process aus System.Diagnostics. Die kann alle Dateiein (wenn sie einem Programm zugeordnet sind) und soweit ich weis auch Ordner direkt öffnen.
    PS: Wie man Strings verkettet solltest du aber wissen.

    Grüße, JasonDelife.
     
  3. ben

    ben Neues Mitglied

    Registriert seit:
    12 Juli 2009
    Beiträge:
    161
    Punkte für Erfolge:
    0
    hallo
    danke fur die antwort ich werde mich mal damit beschaftigen.
    ich bin erst seit ca 3 wochen dabei und weis noch sehr wenig.aber so lerne ich immer mehr dazu deswegen probier ich ja immer rum ;)
    ich guck mal was ich hinkriege

    danke
    MfG ben
     
  4. derwunner

    derwunner Mitglied

    Registriert seit:
    8 Juli 2008
    Beiträge:
    52
    Punkte für Erfolge:
    6
    Hier die Komplettlösung

    Hallo,
    also grundsätzlich kann man mit Process.Start(); alles öffnen. Wenn es kein exe Programm ist, wird das dafür vorgesehene Standaradprogramm geöffnet. Gibt es kein Standardprogramm dafür, dann Stürtzt dein Programm ab. Deswegen würde ich dir empfehlen das in einem Try-Catch Block zu schreiben. Try {} wie der name schon sagt, versucht etwas und catch (Exception) {} fängt alle Fehler ab und führt dann aus, was im catch Block steht. Das Schlüsselwort Exception steht für alle Fehler. Mit z. b. Exception.DivideByZero wird nur der catch Block ausgeführt, wenn jemand versucht hatte durch 0 zu dividieren. Also du kannst also auch einen try Block haben, aber verschiedene catch Blöcke, die verschiedene Sachen abfangen. Wenn du deinen Benutzer wissen lassen, was schief gelaufen ist, dann hängst du einfach an Exception ein wort oder buchstaben noch an. z. b.:

    Code (text):
    1. catch (Exception e)
    2. {
    3.        Console.WriteLine("Das ist schief gelaufen" + e);
    4. }
    Grundsätzlich kannst du folgendermaßen prüfen, ob eine Datei existiert:
    Code (text):
    1.  
    2. if (File.Exists(@"C:\Pfadname\Dateiname.Formatierungstyp")
    3. {
    4.      //Was passieren soll, wenn die Datei existiert.
    5. }
    6.  
    Da ich mal Zeit habe zum Proggen, stelle ich dir hier die Komplettlösung mal vor (wenn ich deine Angaben richtig verstanden habe):

    Code (text):
    1.  
    2. using System;
    3. using System.Collections.Generic;
    4. using System.ComponentModel;
    5. using System.Data;
    6. using System.Drawing;
    7. using System.Linq;
    8. using System.Text;
    9. using System.Windows.Forms;
    10. using System.IO;
    11. using System.Diagnostics;
    12.  
    13. namespace projekt_htmlforum
    14. {
    15.     public partial class Form1 : Form
    16.     {
    17.         string path = null;
    18.  
    19.         public Form1()
    20.         {
    21.             InitializeComponent();
    22.         }
    23.  
    24.         private void Form1_Load(object sender, EventArgs e)
    25.         {
    26.  
    27.         }
    28.  
    29.         private void textBox1_TextChanged(object sender, EventArgs e)
    30.         {
    31.             path = textBox1.Text; //Speichert zeichen Für Zeichen in dem String "path" Wenn du sehen willst, wie es arbeitet, dann mache die Kommentarzeichen aus der nächsten Zeile raus:
    32.             /*if (path != "")
    33.             {
    34.                 MessageBox.Show("Sie haben einen Buchstaben eingegeben!");
    35.             }*/
    36.         }
    37.  
    38.         private void button1_Click(object sender, EventArgs e)
    39.         {
    40.             //Prüfen, ob die Datei existiert:
    41.             try
    42.             {
    43.                 if (File.Exists(@path))
    44.                 {
    45.                     Process.Start(@path);
    46.                     MessageBox.Show("Datei gefunden, die Datei wurde gestartet!");
    47.  
    48.                     //falls du nach öffnen der Datei das Prgromm beenden möchtest:
    49.                     //this.Close();
    50.                     //oder verstecken (läuft immer nocher weiter):
    51.                     //this.Hide();
    52.                 }
    53.             }
    54.  
    55.             catch (Exception fehler)
    56.             {
    57.                 MessageBox.Show("Ein Fehler ist aufgetreten, bitte überprüfen Sie ihre Pfadangabe \n Programmfehler: " + fehler);
    58.                 path = null;
    59.             }
    60.  
    61.  
    62.  
    63.         }
    64.  
    65.        
    66.     }
    67. }
    68.  
    Ich stelle dir hier nur die Codierung bereit, um deine Windows Form, also wie sie aussieht, das musst du noch selber machen. Ich bin bei dem Textfeld und dem Button von den Standardwerten ausgegangen. Also das Button z. b. heißt bei mir immer noch "button1". Das Programm (mit einer Windows Form) würde so an sich gehen, habs selbst mit VS getestet!

    ------------------------------------------------------------------
    Falls du sonst noch Fragen hast, melde dich bei mir (PN). Ich weiß wie das ist, wenn man programmieren lernt, aber keinen Ansprechpartner hat, der einem weiterhelfen kann. So hatte ich auch auch mal angefangen vor Jahren.



    MFG derwunner
     
  5. ben

    ben Neues Mitglied

    Registriert seit:
    12 Juli 2009
    Beiträge:
    161
    Punkte für Erfolge:
    0
    danke
    ich habe das mal in ein neues programm kopiert und das zeigt mit 54 errors an
    ich habe visual basics 2008 express edition die windows form hab ich so gemacht wie du gesagt hast textbox und button so gelassen nicht umbennant.

    Code (text):
    1. Public Class Form1
    2.     End Class
    3.  
    hab ich an anfang und ende sonst zeigt der mit die windows form nicht mehr an. aber ich habs auch ohne versucht dann nur 53 errors
    hier mal die error liste
    Code (text):
    1.  
    2. Description      Line     Column
    3. 1    'Class' statement must end with a matching 'End Class'.    1    1
    4. 2    Statement cannot appear outside of a method body.    2    5
    5. 3    Statement cannot appear outside of a method body.    3    1
    6. 4    Statement cannot appear outside of a method body.    4    1
    7. 5    Statement cannot appear outside of a method body.    5    1
    8. 6    Statement cannot appear outside of a method body.    6    1
    9. 7    Statement cannot appear outside of a method body.    7    1
    10. 8    Statement cannot appear outside of a method body.    8    1
    11. 9    Statement cannot appear outside of a method body.    9    1
    12. 10    Statement cannot appear outside of a method body.    10    1
    13. 11    Statement cannot appear outside of a method body.    11    1
    14. 12    'Namespace' statements can occur only at file or namespace level.    13    1
    15. 13    'Namespace' statement must end with a matching 'End Namespace'.    13    1
    16. 14    Syntax error.    14    1
    17. 15    Declaration expected.    15    34
    18. 16    Syntax error.    16    5
    19. 17    Syntax error.    17    9
    20. 18    Syntax error.    20    9
    21. 19    Declaration expected.    21    13
    22. 20    Syntax error.    22    9
    23. 21    End of statement expected.    24    22
    24. 22    Syntax error.    25    9
    25. 23    Syntax error.    27    9
    26. 24    End of statement expected.    29    22
    27. 25    Syntax error.    30    9
    28. 26    Declaration expected.    31    13
    29. 27    Syntax error.    32    13
    30. 28    Syntax error.    33    13
    31. 29    Declaration expected.    34    17
    32. 30    Syntax error.    35    13
    33. 31    Syntax error.    36    9
    34. 32    End of statement expected.    38    22
    35. 33    Syntax error.    39    9
    36. 34    Syntax error.    40    13
    37. 35    Statement cannot appear outside of a method body.    41    13
    38. 36    Syntax error.    42    13
    39. 37    Statement cannot appear outside of a method body.    43    17
    40. 38    Syntax error.    44    17
    41. 39    Declaration expected.    45    21
    42. 40    Declaration expected.    46    21
    43. 41    Syntax error.    48    21
    44. 42    Syntax error.    49    21
    45. 43    Syntax error.    50    21
    46. 44    Syntax error.    51    21
    47. 45    Syntax error.    52    17
    48. 46    Syntax error.    53    13
    49. 47    Statement cannot appear outside of a method body.    55    13
    50. 48    Syntax error.    56    13
    51. 49    Declaration expected.    57    17
    52. 50    Declaration expected.    58    17
    53. 51    Syntax error.    59    13
    54. 52    Syntax error.    63    9
    55. 53    Syntax error.    66    5
    56. 54    Syntax error.    67    1
    57.  
    ich hab bei meinem programm das mit process gemacht und es offnet das mit dem default programm und einen check button ob die datei/ordner existiert hab ich extra sind zwei verschiedene buttons und dann offnen nochmal ein button aber ich koennte auch offnen klicken wenn die datei nicht existiert

    danke
    MfG ben
     
  6. derwunner

    derwunner Mitglied

    Registriert seit:
    8 Juli 2008
    Beiträge:
    52
    Punkte für Erfolge:
    6
    Sorry ;)

    Achso, sorry, du benutzt Visual Basic. Ja das kann ich natürlich nicht. Das dann Fehler kommen ist logisch. Das Programm was ich dir gegeben habe, war in C# gemacht. Also sprich mit Visual C# 2008. Dein Syntax sah für mich nach C# aus.
    Ich würde dir auch empfehlen, auf C# zu wechseln, weil visual basic macht heute fast keiner mehr. Außerdem ist C# sehr mächtig.


    MFG derwunner
     
  7. JasonDelife

    JasonDelife Neues Mitglied

    Registriert seit:
    4 Juni 2009
    Beiträge:
    30
    Punkte für Erfolge:
    0
    Abgesehen davon, dass ich von Komplettlösungen wenig halte, ist Visual Basic (ohne S) 2008 genauso Mächtig wie C#. Es hat ein paar Features, die meiner Meinung nach verdammt werden sollten, aber das macht es nicht gleich schlecht.
    Try-Catch sieht in VB so aus:
    Code (text):
    1.  
    2. Try
    3.  ' Dein Versuchscode
    4. Catch e As Exception
    5.  ' Dein Fehlercode
    6. End Try
    7.  
    Es heißt übrigens DivideByZeroException und nicht Excpetion.DivideByZero.
    Desweietren empfehle ich einfach mal ein Grundlagenbuch durchzuarbeiten, da kommt das ganze Zeug ausführlich erklärt dran.

    Viele Grüße, JasonDelife.
     
  8. derwunner

    derwunner Mitglied

    Registriert seit:
    8 Juli 2008
    Beiträge:
    52
    Punkte für Erfolge:
    6
    Schon klar. Aber hallo? In welchen Jahr sind wir denn? 1950 oder was? So wie ich das aus dem Try Catch Block rauslesen konnte, gibts in Visual Basic keine Klammern, nur end Befehle und so Einrückungsscheiß, das finde ich genauso schwachsinnig wie RPG!
    Also nicht falsch verstehen, ist meine meinung dazu.


    MFG derwunner
     
  9. JasonDelife

    JasonDelife Neues Mitglied

    Registriert seit:
    4 Juni 2009
    Beiträge:
    30
    Punkte für Erfolge:
    0
    @derwunner:
    Ich bin selbst ein Kind der C-Style-Programmiersprachen und ich habe mit Visual Basic eher weniger am Hut, weil es meiner Meinung nach zu viele "Features" hat, die zu inkonsequenter Programmierung verleiten. Beispiel: Der My-Namespace bringt Grundfunktionen von .NET als prozedurähnliche Befehle mit. Man muss doppelt lernen (der .NET-Way und der prozedural-käse von VB). Außerdem entsteht durch das My.Application.AForm eine große inkonsequenz in Sachen Kapselung und OOP. Das Fehlen von Klammern hingegen sehe ich angesichts dieser Tatsachen als zu vernachlässigende Lapalie an.
    Sollte jemand Visual Basic programmieren wollen, dann ist das seine persönliche und zu respektierende Entscheidung.

    Grüße, JasonDelife.
     
  10. ben

    ben Neues Mitglied

    Registriert seit:
    12 Juli 2009
    Beiträge:
    161
    Punkte für Erfolge:
    0
    leute nicht gleich kloppen

    erstmal danke fur eure hilfe und tipps

    ich lerne zuhause VB aus spass
    und in der schule haben wir einen programmier club und da lern ich jetzt C#

    hab auf meinem PC zuhause Microsoft Visual Basic 2008 express edition und
    Microsoft Visual C# 2010 Express - ENU

    bin dabei beides zu lernen
    ich hab mir auch schon javascript so halb selbst beigebracht und mit der hilfe von html.de geht das :D

    also beruhigt euch und danke nochmal lol
     

Diese Seite empfehlen