AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi NTFS-Komprimierung einer einzelnen Datei?
Thema durchsuchen
Ansicht
Themen-Optionen

NTFS-Komprimierung einer einzelnen Datei?

Ein Thema von PeterPanino · begonnen am 14. Sep 2018 · letzter Beitrag vom 15. Sep 2018
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 18:48
Da ich garantiert vom TE falsch verstanden werde, Versuche ich es erst gar nicht zu Erklären sondern gebe nur ein Sample.
Fühlst du dich häufig falsch verstanden?
Nicht das ich wüßte, ich schreibe keine Anekdoten als Antwort mit esoterischen Lebensinn gebrabbel wenn es ums Thema Delphi geht.
Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?

Das hier ist viel einfacher:

ShellExecEx('compact', '/c "' + AFile + '"', '', SW_HIDE);

Und das ist zum Verschlüsseln:

ShellExecEx('cipher', '/e /a "' + AFile+ '"', '', SW_HIDE);
"Einfacher" ist eine persönliche Meinung die ich hier nicht reinfliessen lassen möchte, da ich mit Delphi programmiere verwende ich auch Delphi dazu.
Vorteile kann ich Dir keine nennen, da unser Jing und Jang nicht kompatibel ist, wären meine Vorteile = Deine Nachteile.
Ich kann da auch anderen Code schreiben über WMI der genauso untergeht da ja ein externes Programm zu starten viel besser ist.

Fehleranfälliger? Also ich geh wenigstens auf Fehler ein, Du startest nur was ohne es auszuwerten, das ist also besser? Rhetorische Frage bedarf keiner Antwort.

Schön das Du es so regelst, das ist eine Super Idee so. Noch einen schönen Abend wünsche ich Dir.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 19:10
Sei mal ehrlich: Was ist dir denn über die Leber gekrochen?

So viele Vorwürfe: Du machst das und ich mach das.

Wovon kommen diese vielen verbittert klingenden Vorwürfe?

Kannst du mir das verraten? Würde mich EHRLICH interessieren! Oder ist das ein Staatsgeheimnis?

Oder hat das was damit zu tun, dass dein Jing angeblich besser als mein Jang ist?

Wieso verachtest du mein Jang? (Entschuldige, aber du hast damit angefangen).

Aber ich wünsche noch einen schönen Freitagabend!

Geändert von PeterPanino (14. Sep 2018 um 19:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 19:30
Sei mal ehrlich: Was ist dir denn über die Leber gekrochen?
Nichts, so Schreibe ich nunmal. Nimm meine Texte nicht so Ernst. Lese am besten alles noch mal um vielleicht besser zu Verstehen wie ich was wann wie wo meine. Hab Spaß am Leben und Delphi, auch wenn unsere Wege nicht die gleichen sind. Vorwürfe mache ich nicht, auch wenn ich weiß das mein Gegenüber mich nicht versteht, Versuche ich zumindest das bisschen was ich weiß vernünftig weiter zu geben.
Aber die Vorgehensweise vom Betriebssystem und wie dieses funktioniert, um zu Verstehen wie man was benutzen kann, für welche Dinge es Api gibt und für welche man tatsächlich externe Porgramme benötigt, diese Dinge kann ich nur schwer Erklären.
Wenn jemand eine Möglichkeit geboten bekommt etwas innerhalb der "besten Programmierumgebung*" (*=persönliche Meinung) durchzuführen, derjenige aber lieber externe Programme einsetzt, da splittet sich der Weg, Jing und Jang ist kaputt.

Vielleicht habe ich ja im nächsten Thread von Dir mehr Erfolg Dir zu helfen ohne das geschriebene diskutieren zu wollen.


Sorry ich schwief ab, um es kurz zu machen: Ich bin glücklich, also meiner Leber geht es bestens, Danke der Nachfrage.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.121 Beiträge
 
Delphi 12 Athens
 
#14

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 20:12
Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?
Direkt das machen, was man will, ohne Umwege und externe Abängigkeiten.

Ordentliche Fehlerprüfung.
Nja, wenn man es richtig machen würde, denn was steht bei MSDN-Library durchsuchenCreateFile im Abschnitt "Return Value"? (Tipp: es ist keine Null)
Gut, das geht in gewissem Umfang auch mit dem Programmaufruf, aber da müsstest du auch den ExitCode und eventuell auch den StrOut/ErrOut des Programms auswerten.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (14. Sep 2018 um 20:14 Uhr)
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 21:28
Da ich garantiert vom TE falsch verstanden werde, Versuche ich es erst gar nicht zu Erklären sondern gebe nur ein Sample.
Delphi-Quellcode:
const
  COMPRESSION_FORMAT_NONE = 0;
  COMPRESSION_FORMAT_DEFAULT = 1;
  COMPRESSION_FORMAT_LZNT1 = 2;

procedure SetCompressionAttribute(const FileName: string; const CompressionFormat: USHORT);
const
  FSCTL_SET_COMPRESSION = $9C040;
var
  Handle: THandle;
  Flags: DWORD;
  BytesReturned: DWORD;
begin
  if DirectoryExists(FileName) then
    Flags := FILE_FLAG_BACKUP_SEMANTICS
  else if FileExists(FileName) then
    Flags := 0
  else
    raise Exception.CreateFmt('%s does not exist', [FileName]);

  Handle := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, Flags, 0);
  if Handle=0 then
    RaiseLastOSError;
  if not DeviceIoControl(Handle, FSCTL_SET_COMPRESSION, @CompressionFormat, SizeOf(Comp), nil, 0, BytesReturned, nil) then
  begin
    CloseHandle(Handle);
    RaiseLastOSError;
  end;
  CloseHandle(Handle);
end;
So könntest Du Dateien mit NTFS Komprimieren.
Noch eine Frage: Was machst du, wenn die Datei sich in einem für normale User nicht beschreibbaren Verzeichnis befindet? (z.B. C:\Program Files (x86)\...).

In diesem Fall habe ich diese Fehlermeldung erhalten:

Zitat:
---------------------------
System Error. Code: 6.

Das Handle ist ungültig.
---------------------------
OK
---------------------------
Was machst du dann? Würde mich sehr interessieren.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 22:08
Was machst du dann? Würde mich sehr interessieren.
Wenn ich eine Applikation entwickle die Admin-Rechte für bestimmte Dinge benötigt, dann statte ich diese mit eben solchen aus, der User muss es logischerweise akzeptieren falls UAC aktiviert ist.
Vielleicht hast Du so etwas schonmal in freier Wildbahn gesehen, eine Applikation die so ein schönes Schild-Symbol auf irgend einem Knopf oder Menu, wenn man nun menu oder Knopf drückt verlangt man damit höhere Rechte ein, die vielleicht dafür nötig sind was auch immer Du vorhast zu erledigen auch erledigen zu dürfen.
Falls da irgendwas abwertendes oder sonstwie verhöhnendes drinnen stehen sollte, sorry, so schreibe ich, also fühle Dich nicht angegriffen, ich meine das bestimmt nicht so.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 22:24
Ps: Was ich da geschrieben habe, falls Du damit nichts anfangen kannst, schau Dir mal TButton.ElevationRequired genauer an, dann verstehst Du mich hoffentlich besser.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 22:40
Sehr schlau! Das muss auch mal gesagt werden!

Ich muss mich da hingegen mit meiner Windows-Unterstützung mit einem schnarch-langweiligen Einzeiler herumschlagen:

ShellExecEx('compact', '/c "' + AFile + '"', 'runas', SW_HIDE);
  Mit Zitat antworten Zitat
PeterPanino

Registriert seit: 4. Sep 2004
1.451 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 23:26
... dann verstehst Du mich hoffentlich besser.
Ein häufiger Vorwurf unter Eheleuten, wenn man selbst oder der Partner schon an Schwerhörigkeit leidet.

Geändert von PeterPanino (14. Sep 2018 um 23:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#20

AW: NTFS-Komprimierung einer einzelnen Datei?

  Alt 14. Sep 2018, 23:57
Ich muss mich da hingegen...
Was da wohl für Mächte im Gange sind die Dich dazu zwingen das es ein muss ist. Hab ja bereits angedeutet das sich irgendwo unsere Wege trennen, anscheinend ist es hier bevor mich auch diese Mächte verführen

Ich sagte auch bereits das dein externer Programmaufruf für Dich das beste ist, für mich käme das halt nicht in Frage aber es geht ja um Dich. Solange Du glücklich damit bist, ist doch alles in Ordnung.

Nichts desto trotz, viel Erfolg mit Deinem Programm!
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


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 11:44 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