Ganzen Laufwerksnamen statt nur Buchstabe[ERLEDIGT]

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Ganzen Laufwerksnamen statt nur Buchstabe[ERLEDIGT]

Beitrag von RUzZlacK »

Morgen alle zusammen,

kann mir jemand eine ("schnelle") Möglichkeit nennen den kompletten Laufwerksnamen statt nur den Laufwerksbuchstaben zu bekommen? Hilfe komplett durchgesucht, bekomme immer nur den Buchstaben raus (mit z.B. CurDrive()).
Brauche den Namen für ein automatisches Sicherungsprogramm um verschiedene Festplatten vergleichen/aussuchen/angeben zu können.

z.B.:
Montag -> Platte "BackUpMontag" benutzen
Mittwoch -> Platte "BackUpMittwoch" benutzen
Freitag -> Platte "BackUpAlles" benutzen

Automatische E-Mail mit Meldung welche Platte gesichert/verglichen/benutzt wurde etc...

Hoffe es ist verständlich.

Vielen Dank schon im voraus,

Gruß Alex
Zuletzt geändert von RUzZlacK am Do, 12. Mai 2016 13:06, insgesamt 1-mal geändert.
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Re: Ganzen Laufwerksnamen statt nur Buchstabe

Beitrag von AUGE_OHR »

RUzZlacK hat geschrieben:kann mir jemand eine ("schnelle") Möglichkeit nennen den kompletten Laufwerksnamen statt nur den Laufwerksbuchstaben zu bekommen?
du meist sicherlich den Volumen Namen von einen Partition.

Code: Alles auswählen

#include "dll.ch"

DLLFUNCTION GetVolumeInformationA( @lpRootPathName          ,; // address of root directory of the file system
                                   @lpVolumeNameBuffer      ,; // address of name of the volume
                                    nVolumeNameSize         ,; // length of lpVolumeNameBuffer
                                   @lpVolumeSerialNumber    ,; // address of volume serial number
                                   @lpMaximumComponentLength,; // address of system's maximum filename length
                                   @lpFileSystemFlags       ,; // address of file system flags
                                   @lpFileSystemNameBuffer  ,; // address of name of file system
                                   nFileSystemNameSize ) USING OSAPI FROM KERNEL32.DLL  // length of lpFileSystemNameBuffer


FUNCTION VOLINFO(WHATDRV)
LOCAL cDrive,cVolName,nVolLen ,nVolSer ,nCompLen,nFSFlags,cFSName ,nFSLen

   IF PCOUNT() = 0
      cDrive   := "C:\"
   ELSE
      cDrive   := WHATDRV
   ENDIF

   cVolName := SPACE(256)
   nVolLen  := 256
   nVolSer  := 0
   nCompLen := 0
   nFSFlags := 0
   cFSName  := SPACE(32)
   nFSLen   := 32


   GetVolumeInformationA( @cDrive   ,;
                          @cVolname ,;
                          nVolLen   ,;
                          @nVolSer  ,;
                          @nCompLen ,;
                          @nFSFlags ,;
                          @cFSName  ,;
                          nFSLen )

   cVolName := TRIM(cVolName)
   cVolName := STRTRAN(cVolName,CHR(0),"")

*   ? cVolName
*   ? nVolSer
*   ? nCompLen
*   ? nFSFlags
*   ? cFSName

RETURN (cVolName)
den Volumen Namen kannst du ändern wenn du auf dem Laufwerk Icon stehst und F2 drückst ( Admin. Rechte erforderlich )
gruss by OHR
Jimmy
RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Re: Ganzen Laufwerksnamen statt nur Buchstabe

Beitrag von RUzZlacK »

Genau ja sry. Das ging schnell. Vielen vielen Dank!!
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Ganzen Laufwerksnamen statt nur Buchstabe

Beitrag von brandelh »

den volume Namen bekommt man einfacher:

Directory( "D:\", "V" ) --> aDirectory // eventuell auch "D:\*"
<cAttribute>

Das Argument <cAttribute> ist eine Zeichenfolge, mit der Dateien anhand ihrer Dateiattribute in der Verzeichnissuche berücksichtigt werden. Für <cAttribute> kann eins oder mehrere der folgenden Zeichen angegeben werden: "D","H","S","V". Wenn "V" angegeben ist, wird nur der Name des Datenträgers (Volume) ermittelt, Dateien werden nicht eingelesen. Die Bedeutung der gültigen Zeichen für <cAttribute> ist wie folgt:

Directory()-Dateiattribute

Attribut Bedeutung

D Directory Verzeichnisse werden mit eingelesen
H Hidden Versteckte Dateien werden mit eingelesen
S System Systemdateien werden mit eingelesen
V Volume Nur Namen des Datenträgers feststellen und keine Dateien einlesen
Gruß
Hubert
RUzZlacK
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 28
Registriert: Do, 31. Mär 2016 11:32
Wohnort: Pforzheim

Re: Ganzen Laufwerksnamen statt nur Buchstabe

Beitrag von RUzZlacK »

brandelh hat geschrieben:den volume Namen bekommt man einfacher:

Directory( "D:\", "V" ) --> aDirectory // eventuell auch "D:\*"
Stimmt..
Erst vor kurzem Directory() benutzt aber das mit dem V komplett vergessen. :banghead: :banghead:

Danke...
Antworten