AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Infos von z.b. \\server\test\ lesen
Thema durchsuchen
Ansicht
Themen-Optionen

Infos von z.b. \\server\test\ lesen

Ein Thema von DelTurbo · begonnen am 13. Aug 2011 · letzter Beitrag vom 14. Aug 2011
Antwort Antwort
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#1

Infos von z.b. \\server\test\ lesen

  Alt 13. Aug 2011, 19:11
Hi,
ich habe mir cxdrive in mein Programm eingebaut. Das klappt auch super. Blos wenn ich netzwerk laufwerke habe versagt es leider. Ich bekomme nicht zurück wie gross (Bytes) das teil ist, noch was frei ist oder was belegt ist. Auch nicht den Volumenamen.

Wäre toll wenn mir jemand weiterhelfen könnte. Google und das forum suche ich seit ca. 1,5 stunden ab. Ich finde aber meistens nur wie man laufwerke verbindet.

Achso, das netzlaufwerk ist NICHT gemappt. Hätte ich einen Buchstaben, z.b. Z dann geht es auch mit cxdrive. http://www.torry.net/authorsmore.php?id=1084

Danke im voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#2

AW: Infos von z.b. \\server\test\ lesen

  Alt 13. Aug 2011, 20:20
Ich kenne CxDrive nicht. Ich weiß aber das die Windows Api-Funktionen auch mit einem Netzwerklaufwerk zusammen funktioniert. Das Laufwerk muss dazu nicht gemappt sein. Trotzdem musst Du am Server angemeldet sein. Wenn Wenn Du Dich via

net use \\server\test <passwort>/user:<username>

bei dem Server anmeldest, funktioniert es dann?
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#3

AW: Infos von z.b. \\server\test\ lesen

  Alt 13. Aug 2011, 21:26
Ja das geht. Ich möchte die infos auslesen. Ich lese alle files ein. Grösse und Uhrzeit der Datein bekomme ich ja dann.

Mir Fehlt folgendes:
VolumeName
Size (also grösse des laufwerks)
Free (wieviel noch frei ist)
InUse (wieviel belegt ist)
Eventuell Filessystem wenn das geht, also ob FAT oder NTFS (beim Samba ext2,ext3 usw.)

Das Filesystem wäre nicht so wichitg. Aber die anderen Daten bräuchte ich schon.

Gruss
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

AW: Infos von z.b. \\server\test\ lesen

  Alt 13. Aug 2011, 21:39
MSDN-Library durchsuchenGetVolumeInformation aufrufen.
siehe auch: http://www.delphicorner.f9.co.uk/articles/wapi2.htm
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#5

AW: Infos von z.b. \\server\test\ lesen

  Alt 13. Aug 2011, 23:53
Vielen Dank!
Von deiner antwort bin ich hier gelandet http://www.swissdelphicenter.ch/de/showcode.php?id=654

Dann habe ich einen 3zeiler gemacht. Der sogar geht

Delphi-Quellcode:
function GetDiskSize(var free_size, total_size: Int64): Boolean;
begin
    GetDiskFreeSpaceEx(PChar('\\server\volume1'), Free_size, Total_size, nil);
end;
Und es klappt. Nun werde ich noch VolumeInfo versuchen. Vielen vielen dank für den stups in die richtige richtung. Fehlerabfragen kommen natürlich noch rein. Was InUse ist kann ich ja mit den beiden werten berechnen. Das ist das kleinste prob.

Gruss und noch einen schönen "Restabend". Leider bin ich hundemüde, sonst wrürde ich das heute noch machen, aber das pack ich leider nichtmehr.

Nochmals Danke!
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#6

AW: Infos von z.b. \\server\test\ lesen

  Alt 14. Aug 2011, 07:50
Damit sollte es gehen (Drive muss mit einem Backslash (->SysUtils.IncludeTrailingPathDelimiter) enden. Also z.B. "\\server\volume1\").
Delphi-Quellcode:
function VolumeID(const Drive: String): string;
var
  OldErrorMode: Integer;
  NotUsed, VolFlags: Cardinal;
  Buf: array [0..MAX_PATH] of Char;
begin
  OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
  try
    Buf[0] := #$00;
    if GetVolumeInformation(PChar(Drive), Buf, MAX_PATH+1, nil, NotUsed, VolFlags, nil, 0)
    then
      SetString(Result, Buf, StrLen(Buf))
    else
      Result := '';
  finally
    SetErrorMode(OldErrorMode);
  end;
end;

Geändert von samso (14. Aug 2011 um 08:12 Uhr)
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#7

AW: Infos von z.b. \\server\test\ lesen

  Alt 14. Aug 2011, 12:03
Super, klappt.

Und ja es stimmt. Es muss mit \ enden. Warum es bei oben (in dem einzeiler) auch ohne geht weiss ich nicht. Also es geht beides. Mit und ohne \ am ende.

Gruss und vielen dank
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: Infos von z.b. \\server\test\ lesen

  Alt 14. Aug 2011, 12:08
Kleiner Vorschlag:
if GetVolumeInformation(PChar(IncludeTrailinPathDelimiter(Drive)), Buf, MAX_PATH+1, nil, NotUsed, VolFlags, nil, 0) Dann ist es egal, ob der Backslash übergeben wurde oder nicht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.212 Beiträge
 
Delphi 2007 Architect
 
#9

AW: Infos von z.b. \\server\test\ lesen

  Alt 14. Aug 2011, 12:25
Gute idee, danke. Werde ich reinmachen. Wie gesagt, es war gestern abend und ich hatte es einfach vergessen, trotzdem klappt es. Hatte mich nur gewundert.

Ich versuche im moment die Seriennummer auszulesen. Also von \\server\volume1\. Das scheint auch zu gehen. Nur muss ich sehen ob die dann auf allen rechnern gleich ist, was ich hoffe.

EDIT: Zur info.. Ja, ist gleich. Ich habe die nun von 4 Rechnern gelesen. Auch gemountet und nicht gemountet. Ich bin bei Windows immer auf alles gefasst....
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!

Geändert von DelTurbo (14. Aug 2011 um 12:35 Uhr) Grund: Rückmeldung
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz