AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStream.Create gibt Error

Ein Thema von Drahcir · begonnen am 26. Jan 2013 · letzter Beitrag vom 29. Jan 2013
Antwort Antwort
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#1

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 12:32
Und da bin ich mit Programm V2, mal sehen wo ihr noch überall Fehler findet

Moin Zusammen,

das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.
Die Verwendung von TSearchRec.Size funktioniert auch nur bedingt, da es auf 32-Bit begrenzt ist.
Besser:

  iFileSize := (sr.FindData.nFileSizeHigh shl 32) or (sr.FindData.nFileSizeLow);
Dann werd ich mir da was überlegen müssen

Ich will ja keine Werbung machen, aber mit meiner Komponente wäre das ganz einfach zu lösen gewesen
Schau ich mir gerne nachher an wenn ich Zeit habe

das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.
+ wenn man keine Berechtigung zum Lesen der Datei hat, dann geht das auch nicht
Hm ok, ich glaube dann stört mich das exklusiv und würde mich wundern wenn ich Berechtigungen auf eine MSDOS.SYS kriegen würde, wo wäre denn da dann die Sicherheit?

Naja hab n bissl umgesattelt mit den vorhergehenden Beiträgen und meine Funktion, die auch (fast ) funktioniert, sieht so aus:

Delphi-Quellcode:
function TfrmMain.getDirectoryGroesse(OrdnerPfad:string) : Int64;
var Rec : TSearchRec; Groesse : Int64;
begin
  Groesse := 0;
  result := 0;
  if SysUtils.FindFirst(OrdnerPfad + '*', faAnyFile, Rec) = 0 then
  try
    repeat
      if (Rec.Name <> '.') and (Rec.Name <> '..')
      then begin
        if DirectoryExists(OrdnerPfad + Rec.Name)
        then begin
          Groesse := Groesse + getDirectoryGroesse(Ordnerpfad + Rec.Name + '\');
          g_pLogFile.Warning('Öffne Ordner ' + Ordnerpfad + Rec.Name + '\');
        end;
        if FileExists(OrdnerPfad + Rec.Name)
        then begin
          Groesse := Groesse + Rec.Size;
          g_pLogFile.Information('Datei ' + Ordnerpfad + Rec.Name + ' : ' + FormatFloat(' #,###.', Rec.Size));
        end;
      end;
    until SysUtils.FindNext(Rec) <> 0;
  finally
    g_pLogFile.Warning('Ordnergröße ' + Ordnerpfad + Rec.Name + ' : ' + FormatFloat(' #,###.', Groesse));
    SysUtils.FindClose(Rec);
  end;
  
  result := Groesse;
end;
Naja aber da scheint der irgendwie auch Dateien zu ignorieren, wenn ich einen Ordner (Bsp: 'C:\Users\Drahcir\' durchsuchen lasse, fehlen knapp 40GB, keine Ahnung wo die verschwinden naja ich arbeite noch dran ... Kanns sein dasses die Ordner mit den Namen '.' oder '..' sind, die ich ja bei allem geflissentlich übergehe, was sind die eigentlich? (ich glaub ich bin wieder Off-Topic aber gehört ja zu dem Programm)

Vielen Dank nochmal für die schnellen und tollen Antworten
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 15:03
Kannst Du mal ausprobieren, ob das Programm im Anhang die richtige Größe ermittelt?
Angehängte Dateien
Dateityp: zip DirSize.zip (495,3 KB, 8x aufgerufen)
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
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#3

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 15:11
Tut es, jetzt bin ich deprimiert Gibt exakt die richtige Bytezahl an ...
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 15:17
Das arbeitet mit meiner Komponente, der Main-Quelltext hat gerade einmal 80 Zeilen. Vielleicht solltest Du die Dir tatsächlich einmal genauer anschauen. Mich persönlich interessiert vor allem, ob sie sich unter älteren Delphi-Versionen (< Delphi 7) installieren lässt
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
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#5

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 15:53
Das arbeitet mit meiner Komponente, der Main-Quelltext hat gerade einmal 80 Zeilen. Vielleicht solltest Du die Dir tatsächlich einmal genauer anschauen. Mich persönlich interessiert vor allem, ob sie sich unter älteren Delphi-Versionen (< Delphi 7) installieren lässt
Gerne schau ich sie mir an, du hast nichts dagegen das ich den nicht-kommerziell nutze (sofern er mit D6 läuft)?
Natürlich mit Namenserwähnung wenns sein muss
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 15:58
Du kannst damit machen, was Du willst, steht auch so in der Lizenz
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
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#7

AW: TFileStream.Create gibt Error

  Alt 27. Jan 2013, 16:01
Du kannst damit machen, was Du willst, steht auch so in der Lizenz
Top

Ich binde deine Komponente nachher oder morgen ein, je nachdem, wie ich Zeit habe, und meld mich dann anschliessend wieder hier
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#8

AW: TFileStream.Create gibt Error

  Alt 29. Jan 2013, 15:40

das fmShareDenyNone hilft Dir nichts, wenn ein anderer Prozess die Datei exklusiv geöffnet hat.
+ wenn man keine Berechtigung zum Lesen der Datei hat, dann geht das auch nicht
Hm ok, ich glaube dann stört mich das exklusiv und würde mich wundern wenn ich Berechtigungen auf eine MSDOS.SYS kriegen würde, wo wäre denn da dann die Sicherheit?
Lese-Berechtigung kein Problem, steht ja nichts vertrauliches drin.
In der Hibfil stehen von alles Benutzer und allen Prozessen Informationen drin.
Das ist schon etwas mehr vertraulich, daher KEINE Lese-Berechtigung.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: TFileStream.Create gibt Error

  Alt 29. Jan 2013, 17:31
Zur Unit masks habe ich diesen Thread gefunden. Was hältst Du davon, wenn wir das solange gemeinsam durchgehen, bis es läuft? Ich könnte dann den Quelltext entsprechend ändern und bei Torry aktualisieren, und Du hättest eine funktionierende Komponente, so hätten wir beide etwas davon
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
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#10

AW: TFileStream.Create gibt Error

  Alt 29. Jan 2013, 19:10
Zur Unit masks habe ich diesen Thread gefunden. Was hältst Du davon, wenn wir das solange gemeinsam durchgehen, bis es läuft? Ich könnte dann den Quelltext entsprechend ändern und bei Torry aktualisieren, und Du hättest eine funktionierende Komponente, so hätten wir beide etwas davon
Sehr gerne Vielleicht könntest du mir bei der Gelegenheit ein wenig den Quelltext erklären?

Hier im Forum denk ich ist dafür ein unpassender Ort, hast du Skype oder Teamspeak? Kannst mir ja ne PN schicken
Sonst wäre ein IRC ja auch eine Möglichkeit, das Internet bietet ja große Auswahl
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  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 20:24 Uhr.
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