Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Dateigröße auf Netzlaufwerk ermitteln (https://www.delphipraxis.net/104333-dateigroesse-auf-netzlaufwerk-ermitteln.html)

Luckie 2. Dez 2007 00:17

Re: Dateigröße auf Netzlaufwerk ermitteln
 
Also das sagt das DK dazu:
Zitat:

On network shares, you can use an lpFileName in the form of the following: "\\server\service\*" but you cannot use an lpFileName that points to the share itself, for example, "\\server\service".

haentschman 2. Dez 2007 00:24

Re: Dateigröße auf Netzlaufwerk ermitteln
 
...was ist DK ? :oops:

..vieleicht ist es ja schon zu spät.. :wink: ich verstehe das Zitat nicht wirklich... :roll:

Danke für Eure Hilfe...

himitsu 2. Dez 2007 00:26

Re: Dateigröße auf Netzlaufwerk ermitteln
 
SDK / PSDK
> MSDN-Library durchsuchenFindFirstFile

Nja, das Zitat sagt daß es eigentlich gehn sollte.


Du könntest es nochmal mit der Unicode-Version der WinAPI-Funktion FindFistFile (FindFistFileW) versuchen. Vorallem bei den UNC-Namen arbeitet diese etwas anders als die ANSI-Version (FindFistFile/FindFistFileA).

haentschman 2. Dez 2007 00:33

Re: Dateigröße auf Netzlaufwerk ermitteln
 
...nun ja ich sehe das genauso...

100 mal schon mit Netzlaufwerken, VPN via IP gearbeitet...keine Probleme. :???:

...darum :wiejetzt:

...aus Spaß habe ich mal eine FileListBox auf die Form gesetzt. Mit der Directory Angabe \\localhost\c:\tmp bekomme ich auch Fehler 53...

:mrgreen: ...ist schon so traurig, daß es wieder zum Lachen ist...

himitsu 2. Dez 2007 00:39

Re: Dateigröße auf Netzlaufwerk ermitteln
 
hatte grad nochwas in Beitrag #13 nachgetragen,
wie gesagt, du könntest es nochmals mit Unicode versuchen (direkt über die WinAPI oder eine UnicodeCodesammlung)

Oder hast du mal vesucht andere/alle Dateien auf dem Zielrechner zu finden?
z.B. \\host\c:\tmp\*.*

haentschman 2. Dez 2007 00:56

Re: Dateigröße auf Netzlaufwerk ermitteln
 
...alles das gleiche in grün. :roll:

egal wie ich den File String zusammensetze. :(

FindFirstFileW... damit muß ich mich erst etwas näher beschäftigen... :roll:

himitsu 2. Dez 2007 01:06

Re: Dateigröße auf Netzlaufwerk ermitteln
 
Kurzfassung/Test:
Delphi-Quellcode:
Var FileName: WideString;
  H: THandle;
  D: TWIN32FindDataW;

Begin
  FileName := 'deine Datei oder ein Suchmuster';

  H := FindFirstFileW(PWideChar(FileName), D);
  If H = INVALID_HANDLE_VALUE Then GetLastError_auswerten;
  {sonst alles ok}
  CloseHandle(H);

haentschman 2. Dez 2007 01:07

Re: Dateigröße auf Netzlaufwerk ermitteln
 
... habe mir noch eimal die Namenskonvention angeschaut.

http://msdn2.microsoft.com/en-us/library/aa365247.aspx

...eigentlich ist das richtig, was ich getrieben hab... :mrgreen:

:wiejetzt:

himitsu 2. Dez 2007 01:17

Re: Dateigröße auf Netzlaufwerk ermitteln
 
Ja wie gesagt: die ANSI-Dateifunktionen sind halt in einigen Dingen etwas eingeschränkt
und wenn du Glück hast, dann liegt es nur an soeiner Beschränkung.
Wenn nicht, dann sieht es schon schwerer aus, da dieses ja eigentlich funktionieren sollte.

haentschman 2. Dez 2007 01:18

Re: Dateigröße auf Netzlaufwerk ermitteln
 
...erst einmal Danke,Danke,Danke... :-D

Habe Deinen Tipp wie folgt angepaßt.
Delphi-Quellcode:
function GetFileSize2(const FileName: String): Int64;
var
  H: THandle;
  D: TWIN32FindDataW;

begin
  H := FindFirstFileW(PWideChar(FileName), D);
  If H <> INVALID_HANDLE_VALUE then exit; //GetLastError_auswerten;
  result := (d.nFileSizeHigh*(MAXDWORD))+d.nFileSizeLow;
  CloseHandle(H);
end;
...Datei wird gefunden...aber die Größe stimmt nicht. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz