Ordner sofort nach Programmstart erstellen

wappl

Grünschnabel
Hallo zusammen,

ich möchte gerne das mir mein Programm sofort nach dem Öffnen automatisch einen Ordner erstellt ( z..B. den Ordner install auf c: ) und danach eine Datei hinein kopiert. Was für Befehle muß ich hier am Anfang des Programmes setzen? Wäre hilfreich für mich, wenn ihr mir das mittels eines Codebeispiels erklären könntet. Danke für eure Antworten.

Und nochmal ein großes Lob für dieses Forum, hier wird dir wirklich schnell geholfen.

Gruß pastl:) :)
 
Hallo.

Danke für das Lob, muss dir aber sagen, dass wir es gerne sehen, wenn unsere User sich selbst mit dem Provblem beschäftigen und dann bei konkreteren Problemen nachfragen. Du hast jetzt ja, zum Beispiel, einfach ein prinzipielles Problem beschrieben, scheinbar ohne das du dich damit beschäftigt hast.

Die MSDN hat sehr, sehr viele Infos zur Klassenbibliothek von .net, und diese ist auch sehr nett aufgebaut. So weiss man, dass wenn man mit Dateien/Ordner zu tun hat, man sicher den Namespace System.IO benötigen wird, und kann sich dort die vorhanden Klassen ansehen.

In der MSDN gibts es auch zu jeder Klasse ein Beispiel in den VB.net, C#, und C++.net.

Code:
using System.IO;
...
if (!Directory.Exists("C:\\INSTALL"))
    Directory.Create("C:\\INSTALL");

string[] files = new string[] { "Datei1.dat", "Datei2.dat" };

foreach (string f in files)
{
    File.Copy(f, "C:\\INSTALL\\");
}

Zuerst überprüfen ob der Zielordner existiert, wenn nicht wird er neu erstellt.
Danach alle Dateien im Array in den Ordner kopieren.

Diesen Code kannst in eine eigene Methode geben, und dann im Konstruktor deiner Klasse, oder in der Hauptmethode, wie auch immer, aufrufen.

Aber bitte sieh dich auch in der MSDN um, oder im Dokumentations Browser auf deiner Festplatte, dort sollts auf Deutsch sein, je nach Sprachversion des .net SDKs.


MfG,
Alex
 
Wiedermal danke Alex,

du hattest natürlich recht, dass ich zu voreilig mein Problem gepostet habe. nach einiger Zeit und etwas lesen habe ich es dann so hinbekommen:

Code:
IO.Directory.CreateDirectory("c:\test") 'Verzeichnis erstellen

Code:
IO.File.Copy("c:\test.jpg", "c:\test\test.jpg") 'Datei kopieren


Trotzdem wieder einmal danke für deine schnelle Antwort.


Gruss pastl
 
Bitte bitte,

das es so klingt als wäre dein Code ein anderer,

du benutzt die selben Klassen, und Methoden wie ich, nur dass du den Namespace "System.IO" nicht mittels using 'eingebunden' hast, und deshalb bei den Klassen vorher noch einen Teil des Namespaces angegeben hast.
Den Namespace System wirst ja eingebunden haben, deswegen reicht dann beim Klassenaufruf nur noch das IO.

MfG,
Alex
 
Hallo Alex,

mein Code sieht bis jetzt etwa so aus:

Code:
Imports System
Imports System.IO
Imports Microsoft.Win32

Public Class Form1
    Inherits System.Windows.Forms.Form

+ Vom Windwos Form Designer generierter Code

     'Installation abbrechen

Private Sub NoInst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NoInst.Click
        Close()
    End Sub
   
    'Installation starten

    Private Sub StartInst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles StartInst.Click

        
        On Error GoTo ErrHandler

        'Definition der Variabeln

        Dim SysDir As String
        Dim CMDFile As String
        Dim InstDrive As String
        Dim InstallPath As String
        
        'Systempartition ermitteln, Ordner erstellen und Files kopieren

        SysDir = Environ("SystemDrive") 'Systempartition ermitteln
        IO.Directory.CreateDirectory(SysDir & "\Install\xpaisw") 'Verzeichnis erstellen
        IO.File.Copy(InstDrive & "\xpaisw.exe", SysDir & "\Install\xpaisw\xpaisw.exe") 'Datei kopieren
        IO.File.Copy(InstDrive & "\Sleep.exe", SysDir & "\Install\Sleep.exe") 'Datei kopieren

         'Pfad für CMD-Datei festlegen

        CMDFile = SysDir & "\install\xpaisw\xpaisw.cmd" 'Pfad / Name der Installationsdatei

        'Code zum erstellen der CMD-Datei

        Dim File As New System.IO.StreamWriter(CMDFile, False)

        Dim fs, d, dc, s, n
        fs = CreateObject("Scripting.FileSystemObject")
        dc = fs.Drives
        For Each d In dc
            If d.DriveType = 4 Then
                Dim xpaisw As New FileInfo(d.driveletter & ":$OEM$\$1\Install\xpaisw\xpaisw.exe")
                If xpaisw.Exists Then
                    InstDrive = d.driveletter & ":"
                    InstallPath = d.driveletter & ":\Install\"
                End If
            End If
        Next
        dc = Nothing
        fs = Nothing


Schönen Tag.

Gruß pastl
 
Zurück