Frage zu partitions buchstaben



  • buba schrieb:

    Danke Rudi G jetzt klappt es mit 4.

    jetzt habe ich noch folgendes Problem ich habe eine listBox erstellt da sollen
    die Festplatten alle rein.

    Mit dem

    this->FestplattenListBox->Items->AddRange(Environment::GetLogicalDrives());

    bekomme ich die ganzen Laufwerke mit rein wie kann ich nur die Festplatten reinmachen? geht das überhaupt mit Environment::GetLogicalDrives()?

    System::IO::DriveInfo



  • Sorry ist mein erstes Tool und ich habe echt keine Ahnung wie ich das mit
    System::IO::DriveInfo machen soll und wie ich die festplatten dan in meine listbox
    rein bekommen soll.

    ich bekomme es nicht mal auf die reihe die Infos mit System::IO::DriveInfo anzusehen 😞

    Kann mir bitte einer helfen?



  • Hillffffeeee ich komme ohne eure Hilfe nicht weiter.



  • http://msdn2.microsoft.com/en-us/library/system.io.driveinfo.aspx

    This code produces output similar to the following:

    Drive A:\
    File type: Removable
    Drive C:\
    File type: Fixed
    Volume label:
    File system: FAT32
    Available space to current user: 4770430976 bytes
    Total available space: 4770430976 bytes
    Total size of drive: 10731683840 bytes
    Drive D:\
    File type: Fixed
    Volume label:
    File system: NTFS
    Available space to current user: 15114977280 bytes
    Total available space: 15114977280 bytes
    Total size of drive: 25958948864 bytes
    Drive E:\
    File type: CDRom



  • Knuddlbaer du hast mich nicht richtig verstanden ich will die Festplatten Buchstaben in eine
    ListBox reinmachen und weis nicht wie.

    Mit den Infos der Laufwerke kann ich nicht viel anfangen.
    Bin halt noch ein Anfänger.



  • "Buchstaben" , also Strings bekommst Du in eine Listbox via:

    ListBox1.Items.Add(Buchstabe);
    

    Zum "Buchstaben" und "Festplatte" wurde schon alles gesagt. Auch ein Anfänger wird in die Doku schauen können. Mittels DriveInfo::DriveType kannst Du sehr schnell bestimmen was eine Festplatte ist und was nicht. Man müsste sich halt mal anschauen was da geschrieben steht.

    Btw.: Ich muss selbst gerade eine solche Routine implementieren. Wenn diese fertig ist, poste ich Dir ein Beispiel (in C#).



  • namespace Beispiel
    {
        public partial class Form1 : Form
        {
    
            class OwnDriveInfo
            {
                System.IO.DriveInfo driveInfo;
                public System.IO.DriveInfo DriveInfo
                {
                    get { return driveInfo; }
                }
    
                public override string ToString()
                {
                    return string.Format("{0} : {1} ({2} GB)", driveInfo.Name, driveInfo.VolumeLabel,driveInfo.TotalFreeSpace / 1024*1024);
                }
    
                public OwnDriveInfo(DriveInfo info)
                {
                    driveInfo = info;
                }
            }
    
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                DriveInfo[] drives = DriveInfo.GetDrives();
    
                foreach(DriveInfo inf in drives)
                {
                    if (!inf.IsReady || inf.DriveType != DriveType.Fixed)
                        continue;
    
                    listBox1.Items.Add(new OwnDriveInfo(inf));               
                }
            }
    
        }
    }
    


  • Hi Knuddlbaer!
    Habe deinen Code mal so übernommen wie du in reingestellt hast habe nur die zeile

    FestplattenListBox.Items.Add(new OwnDriveInfo(inf));
    

    geändert und bekomme folgende Fehler.

    Syntaxfehler: 'public'
    Syntaxfehler: Es fehlt ';' vor '{'
    '{': Funktionskopf fehlt - Parameterliste im alten Stil?

    Ich finde die Fehler aber nicht.
    Kannst du mir sagen wo die sind?



  • Wenn diese fertig ist, poste ich Dir ein Beispiel (in C#).

    Sorry, die sache ist an sich einfach und die Doku dazu umfangreich. Ebenso ist der Syntaxunterschied zwischen C# und C++ nun wirklich nicht groß.

    Etwas eigeninitiative darfst Du schon mitbringen.



  • Habe es geschafft.
    Wer wissen will wie, hier der Code

    private: System::Void InitDrivers(){
    
    				// Fesstplatten in der ListBox ausgeben 
    				array<System::IO::DriveInfo ^> ^Info = gcnew array<System::IO::DriveInfo ^>(20);
    				Info = System::IO::DriveInfo::GetDrives(); 
    				int InfoArrayLength = Info->Length;
    				for(int x=0;x<InfoArrayLength;x++){
    					if(Info[x]->DriveType == IO::DriveType::Fixed)
    						this->FestplattenListBox->Items->Add(Info[x]->Name);
    				}
    }
    

    jetzt habe ich noch eine frage wie kann ich prüfen ob eine Datei gerade benutzt wird?


Anmelden zum Antworten