Schrift
[thread]6065[/thread]

Dateigröße ermitteln: während des Kopiervorgangs

Leser: 1


<< |< 1 2 >| >> 16 Einträge, 2 Seiten
jane_templar
 2004-02-09 08:06
#79959 #79959
User since
2003-11-26
23 Artikel
BenutzerIn
[default_avatar]
Hallo, hallo,

leider habe ich schon wieder ein Problem.
Während des Kopiervorgangs einer 300 MB großer Datei möchte ich abfragen, wie weit der Kopiervorgang schon ist.
Wenn ich das aber auf meinem Windows-System mit -s Dateiname oder auch mit stat mache zeigt er mir sofort die vollständige Dateigröße an, obwohl der Kopiervorgang noch mindestens 25 Sekunden andauert.

Welche Möglichkeiten gibt es hier???

Danke,
JanE
kabel
 2004-02-09 08:31
#79960 #79960
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
Schreibe dein eigenes Copy. In der Schleife kannst du dann die Anzahl bereits kopierter Bytes mitrechnen.
-- stefan
esskar
 2004-02-09 10:00
#79961 #79961
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
soll das programm nur unter windows laufen?
esskar
 2004-02-09 10:05
#79962 #79962
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
unter windows c würde ich es so testen...

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
unsigned long GetOpenFileSize(char* ss)
{
DWORD fp=0;
HANDLE a;

a=CreateFile(ss, GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0 );
if (a!=INVALID_HANDLE_VALUE)
{
fp = GetFileSize(a, NULL);
CloseHandle(a);
}

return fp;
}


hab grad keine Zeit, es in Perl mittels Win::API zu übersetzten... muss zur Arbeit...
vielleicht schaff ich es im LAufe des Tages...
oder jemand anders?
jane_templar
 2004-02-09 11:08
#79963 #79963
User since
2003-11-26
23 Artikel
BenutzerIn
[default_avatar]
Ja, es soll nur unter windows laufen, warte auf die Übersetzung....

(nur keine Panik, ich hab Zeit)

Danke schon mal!
JanE
esskar
 2004-02-09 13:35
#79964 #79964
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use strict;

use constant GENERIC_READ => 0x80000000;
use constant OPEN_EXISTING => 3;
use constant FILE_ATTRIBUTE_NORMAL => 0x00000080;


use Win32::API;
use Win32::API::Struct;

Win32::API::Struct->typedef(SECURITY_ATTRIBUTES => qw{
 DWORD nLength
 LPVOID lpSecurityDescriptor
 BOOL bInheritHandle
});


Win32::API->Import('kernel32', 'HANDLE CreateFile(LPCTSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)');

Win32::API->Import('kernel32', 'DWORD GetFileSize(HANDLE hFile, LPDWORD lpFileSizeHigh)');

Win32::API->Import('kernel32', 'BOOL CloseHandle(HANDLE hObject)');

sub GetOpenFileSizeWin
{
  my ($file) = @_;
  my $handle = 0;
my $size = 0;

  $handle = CreateFile($file, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
  if($handle)
  {
$size = GetFileSize($handle, 0);
CloseHandle($handle);
  }
return $size;
}


Ungetestet!\n\n

<!--EDIT|esskar|1076352586-->
esskar
 2004-02-09 20:50
#79965 #79965
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
übersetzt! !!!
jane_templar
 2004-02-10 07:40
#79966 #79966
User since
2003-11-26
23 Artikel
BenutzerIn
[default_avatar]
Hi Esskar,
vielen Dank für Deine Mühe, leider werde ich es heute nicht schaffen, das Script zu testen (beruflich 2 Tage unterwegs und im Streß).

Werde Dir dann hier Bescheid geben...

Ciao,
JanE
esskar
 2004-02-10 22:45
#79967 #79967
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
no prob!
jane_templar
 2004-02-16 07:41
#79968 #79968
User since
2003-11-26
23 Artikel
BenutzerIn
[default_avatar]
Nachdem ich das Ganze eingestrickt habe, bekomme ich die Fehlermeldung
Code: (dl )
Can't locate object method "Pack" via package "Config" at (eval 1) line 2, <DATA> line 164 

Die Zeile 164 entspricht
Code: (dl )
$handle = CreateFile($file, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);


@esskar:
Hast Du eine Ahnung, woran es liegt?

Gruß
JanE
<< |< 1 2 >| >> 16 Einträge, 2 Seiten



View all threads created 2004-02-09 08:06.