|
|
Datenträger formatieren
Letzter Beitrag 05. Apr 2011 13:23 von rolfrui. 8 Antworten.
-
17. Jun 2009 9:03
|
|
-
Bernd



- Registriert am 10. Jan 2009
- Weißbach
- Beiträge 107
- Punkte 1.420
|
Hallo an alle,
ich habe mal wieder ein kleines Problem, bei dem ich einfach nicht den richtigen Ansatz finde, bitte um weitere Hilfestellung!
Ich benötige eine Funktion, mit der ich einen externen Datenträger (CF-Card) formatieren kann, bevor ich ihn neu beschreibe. Das formatieren sollte in FAT passieren und möglichst ohne Benutzereingriff ablaufen.
Gibt es hierfür eine Klasse? Mit was muss ich mich beschäftigen?
Danke schon mal
Bernd
..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o) Sprache: VB.NET 2008 Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch.. Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
|
|
-
-
gfoidl



- Registriert am 07. Okt 2008
- Waidring / Tirol
- Beiträge 173
- Punkte 3.105
|
Hallo,
starte mit System.Diagnostics.Process die Formatierung. Also "format i: /...".
Oder geht das nicht?
mfG Günther
Programming today is a race between the programmers and software engineers to create better and more idiot-proof programs, and the universe, creating bigger and better idiots. So far, the universe is winning". - Rich Cook
|
|
-
-
-
Bernd



- Registriert am 10. Jan 2009
- Weißbach
- Beiträge 107
- Punkte 1.420
|
Hallo Jungs,
dass dies über einen Process funktioniert, hätte ich auch selbst drauf kommen können! Ok, ich werde es testen, weil für mich wichtig ist, dass der User nach starten des Prozesses keine Eingabe (Bestätigung) mehr geben muss.
Es ist ein externer Datenträger, also hat _ntr_ Recht, dass das mit den Laufwerksbuchstaben ein Problem werden könnte. Über einen Windows Dialog kann ich das aber auswählbar machen und, irgendwo hab' ich mal ein Code-Snippet gesehen, welches Laufwerke nach Art erkennen kann, darüber könnte man dann entsprechende Filter in den Auswahl-Dialog einbauen. Zudem könnte man Standard-Laufwerke (A:\, B:\, C:\ und D:\) dort ausblenden.
Hat noch jemand andere Ideen?
Danke schon mal..
..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o) Sprache: VB.NET 2008 Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch.. Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
|
|
-
-
gfoidl



- Registriert am 07. Okt 2008
- Waidring / Tirol
- Beiträge 173
- Punkte 3.105
|
Hallo,
der Laufwerksbuchstabe könnte wie hier beschrieben ermittelt werden. Dann sollte es schon mit Format gehen (und mit try-catch ).
mfG Gü
Programming today is a race between the programmers and software engineers to create better and more idiot-proof programs, and the universe, creating bigger and better idiots. So far, the universe is winning". - Rich Cook
|
|
-
-
-
Bernd



- Registriert am 10. Jan 2009
- Weißbach
- Beiträge 107
- Punkte 1.420
|
Hallo _ntr_
sicher hast Du nicht unrecht und ich werde auch den User das entsprechende Laufwerk auswählen lassen! Ich sehe das mit der autom. Erkennung genauso! Wer will schon garantieren, dass die verschiedenen Medien, von verschiedenen Herstellern richtig erkannt werden! Glaube mal, den Schuh will sich keiner anziehen.
Ich werde es testen und hier das Ergebnis posten, danke..
Grüßle Bernd
..bin blutiger Anfänger, will mich aber bessern, nicht zuletzt mit Eurer Hilfe.. ;o) Sprache: VB.NET 2008 Nachtrag: Das Programmieren macht mir mehr und mehr Spaß! Auch dank Euch.. Nachtrag 2: Ich bin froh, Teil dieser Community sein zu dürfen. Ihr seid klasse..!!!!
|
|
-
-
Marco Feltmann



- Registriert am 31. Mrz 2011
- Hamburg
- Beiträge 3
- Punkte 60
|
Hier hänge ich mich gleich mal ein.
Folgende Methode
public int RunProcess(string programName, string arguments)
{
System.Diagnostics.Process SubProcess = _prepareProcess(programName);
SubProcess.StartInfo.Arguments = arguments;
System.Diagnostics.Debug.WriteLine("{0} {1}", SubProcess.StartInfo.FileName, SubProcess.StartInfo.Arguments);
if(!System.IO.File.Exists(programName))
{
return 1;
}
SubProcess.Start();
SubProcess.WaitForExit(15000);
int ExitCode = SubProcess.ExitCode;
System.Diagnostics.Debug.WriteLine("Exit Code: {0}", ExitCode);
if(ExitCode > 0 & !SubProcess.HasExited)
{
SubProcess.Kill();
}
SubProcess.Dispose();
return ExitCode;
}
wirft bei mir zur Laufzeit den Fehler:
System.ComponentModel.Win32Exception: Das System kann die angegebene Datei nicht finden
Aufgerufen wird das Ganze via
RunProcess("format", driveLetter + " /FS:FAT32 /V:XPUSB /Q");
Daraus bastelt es mir folgerichtig die Zeichenkette
format G: /FS:FAT32 /V:XPUSB /Q
Gebe ich das Ganze von Hand in die CommandShell ein wird es auch ordnungsgemäß durchgeführt.
Welche Möglichkeiten habe ich noch, einen Datenträger zu formatieren?
Ein Spermium enthält 750 MB an DNA-Daten. Das macht pro Ejakulation ca. 164,8 Mio. GB an Daten und entspricht rund 270 Mio. GBit/Sek. Bandbreite. (inspiriert von Jakob-Matthias Maul)
|
|
-
-
rolfrui


- Registriert am 05. Apr 2011
- Beiträge 7
- Punkte 65
|
Datenträger formatieren
Antworten
Datei schreiben und ausführen. string tmpPath = Path.GetTempFileName() + ".cmd";
File.WriteAllText(tmpPath, "format " + driveLetter + "/FS Fat32 /V:XPUSB /Q");
System.Diagnostics.Process.Start(tmpPath);
|
|
Seite 1 von 1 (9 Treffer)
|
|