Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi NTFS-Komprimierung einer einzelnen Datei? (https://www.delphipraxis.net/197883-ntfs-komprimierung-einer-einzelnen-datei.html)

PeterPanino 14. Sep 2018 14:19

NTFS-Komprimierung einer einzelnen Datei?
 
Hallo und schönes Wochenende!

Ich wollte mit
Delphi-Quellcode:
TFile.SetAttributes
das Dateiattribut
Delphi-Quellcode:
faCompressed
einer einzelnen Datei setzen, aber es funktionierte nicht.

Dann las ich:

Zitat:

It is not possible to change the compression status of a File object using the SetAttributes method.
So versuchte ich in der cmd-Konsole:

Code:
compact "C:\meintest\meineapp.exe"
Aber es funktionierte nicht. Die Konsole meldete zurück:

Code:
1603048 :  1603048 = 1,0 zu 1   meineapp.exe

Von 1 Dateien in 1 Verzeichnissen sind
0 komprimiert und 1 nicht komprimiert.
1.603.048 Datenbytes insgesamt werden in 1.603.048 Bytes gespeichert.
Das Komprimierungsverhältnis ist 1,0 zu 1.
Was könnte die Ursache dafür sein? Wie kann man die NTFS-Komprimierung dieser Datei mit Delphi bzw. programmatisch durchführen?

PeterPanino 14. Sep 2018 14:24

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Aha. Ich habe den
Code:
/c
switch vergessen. Damit funktioniert es.

PeterPanino 14. Sep 2018 14:44

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Wenn man den compact-Befehl für eine Datei ausführt, die bereits NTFS-komprimiert ist, so scheint nichts zu passieren.

Man braucht also offensichtlich nicht vorher zu prüfen, ob die Datei nicht NTFS-komprimiert ist?

himitsu 14. Sep 2018 14:52

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413190)
Ich wollte mit
Delphi-Quellcode:
TFile.SetAttributes
das Dateiattribut
Delphi-Quellcode:
faCompressed
einer einzelnen Datei setzen, aber es funktionierte nicht.

Ich würde empfehlen die Dokumentaion zu lesen, denn da steht was zu machen ist.
MSDN-Library durchsuchenSetFileAttributes

Verschlüsselung, Kompression und andere "Attribute" sind da nur als Information (ReadOnly) enthalten.

Genauso das FILE_ATTRIBUTE_NORMAL, welches nur dafür da ist, um "kein Atribut gesetzt" von "Fehler" unterscheiden zu können, da sonst beides 0 wäre.

PeterPanino 14. Sep 2018 15:13

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von himitsu (Beitrag 1413202)
Verschlüsselung, Kompression und andere "Attribute" sind da nur als Information (ReadOnly) enthalten.

Habe ich ja sinngemäß geschrieben, dass ich deswegen compact verwende.

himitsu 14. Sep 2018 15:21

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Was Compact intern macht, bzw. was man selber ausführen kann, wird dort auch genannt. :angle:

PeterPanino 14. Sep 2018 15:28

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Seltsamerweise funktioniert dein Link für mich nicht:

Zitat:

Something went wrong and we can't sign you in right now. Please try again later.
The Microsoft account login server has detected too many repeated authentication attempts. Please wait a moment and try again.
Hab ich noch nie gesehen.

PeterPanino 14. Sep 2018 15:38

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Übrigens funktioniert das Setzen auch von "einfachen" Dateiattributen von Dateien in geschützten Verzeichnissen wie "C:\Program Files (x86)\..." natürlich nur mit Administrator-Privilegien.

KodeZwerg 14. Sep 2018 16:05

AW: NTFS-Komprimierung einer einzelnen Datei?
 
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.

PeterPanino 14. Sep 2018 18:31

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
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?

Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
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.

Sehr interessant!

Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?

Das hier ist viel einfacher:

Delphi-Quellcode:
ShellExecEx('compact', '/c "' + AFile + '"', '', SW_HIDE);


Und das ist zum Verschlüsseln:

Delphi-Quellcode:
ShellExecEx('cipher', '/e /a "' + AFile+ '"', '', SW_HIDE);

KodeZwerg 14. Sep 2018 18:48

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
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.
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?

Das hier ist viel einfacher:

Delphi-Quellcode:
ShellExecEx('compact', '/c "' + AFile + '"', '', SW_HIDE);


Und das ist zum Verschlüsseln:

Delphi-Quellcode:
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.

PeterPanino 14. Sep 2018 19:10

AW: NTFS-Komprimierung einer einzelnen Datei?
 
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!

KodeZwerg 14. Sep 2018 19:30

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413225)
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.

himitsu 14. Sep 2018 20:12

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
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.

PeterPanino 14. Sep 2018 21:28

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
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.

KodeZwerg 14. Sep 2018 22:08

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413228)
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.

KodeZwerg 14. Sep 2018 22:24

AW: NTFS-Komprimierung einer einzelnen Datei?
 
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.

PeterPanino 14. Sep 2018 22:40

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Sehr schlau! Das muss auch mal gesagt werden!

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

Delphi-Quellcode:
ShellExecEx('compact', '/c "' + AFile + '"', 'runas', SW_HIDE);

PeterPanino 14. Sep 2018 23:26

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413230)
... dann verstehst Du mich hoffentlich besser.

Ein häufiger Vorwurf unter Eheleuten, wenn man selbst oder der Partner schon an Schwerhörigkeit leidet. :wink:

KodeZwerg 14. Sep 2018 23:57

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413231)
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 :wink:

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!

PeterPanino 15. Sep 2018 00:17

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413233)
... dein externer Programmaufruf ...

Das ist kein externer Programmaufruf!

Delphi-Quellcode:
compact
und
Delphi-Quellcode:
cipher
sind ein Teil von Windows! Wir verwenden ja deshalb Windows-Aufrufe und das Windows API, weil unsere Programme ja sonst nicht in Windows laufen könnten!

Ich verstehe nicht, wieso manche das Rad neu erfinden und unbedingt Teile von Windows in Delphi nachprogrammieren möchten!

Wieso tun die das? Es gibt doch bestimmt lohnendere Aufgaben als Windows nachzuprogrammieren, oder?

KodeZwerg 15. Sep 2018 00:27

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413234)
Zitat:

Zitat von KodeZwerg (Beitrag 1413233)
... dein externer Programmaufruf ...

Das ist kein externer Programmaufruf!

Delphi-Quellcode:
compact
und
Delphi-Quellcode:
cipher
sind ein Teil von Windows! Wir verwenden ja deshalb Windows-Aufrufe und das Windows API, weil unsere Programme ja sonst nicht in Windows laufen könnten!

Ich verstehe nicht, wieso manche das Rad neu erfinden und unbedingt Teile von Windows in Delphi nachprogrammieren möchten!

Wieso tun die das? Es gibt doch bestimmt lohnendere Aufgaben als Windows nachzuprogrammieren, oder?

Schau mal bitte in Dein \Windows\SysWOW64\ und \Windows\System32\ Verzeichniss.
Wenn es bei Dir dort keine "compact.exe" und "cipher.exe" gibt, kann Dein Rechner was was meiner nicht kann oder diese EXTERNEN Programme liegen irgendwo anders bei Dir.
Windows-Api habe ich gezeigt. Externen Programmaufruf hast Du gezeigt. Nur der Richtigkeithalber.
Les doch mal was ein ShellExecuteEx() macht da Du mir nicht glaubst.

PeterPanino 15. Sep 2018 08:19

AW: NTFS-Komprimierung einer einzelnen Datei?
 
The compact command is the command-line version of the NTFS file system compression feature.

PeterPanino 15. Sep 2018 08:24

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Anhang 49956

Schokohase 15. Sep 2018 08:42

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Die compact.exe (also dieses Programm) wird intern die gleichen API-Aufrufe machen.

Von daher ist es vom Ergebnis das Gleiche, ob ich die API-Aufrufe direkt mache oder eine beliebige externe Anwendung (wie hier die compact.exe) die diese API-Aufrufe macht.

Bei einer vorgefertigten Anwendung muss ich mit dem leben wie es dort umgesetzt ist, macht man die API-Aufrufe direkt, dann kann man das nach Gutdünken selber zusammenstecken.

Trotz allem bleibt es beim ShellExecute/Ex, dass hier eine externe Anwendung aufgerufen wird. Ob diese nun zum Lieferumfang des Betriebssystems gehört oder nicht ist dabei völlig unerheblich.

Das ist weder gut noch schlecht, sondern einfach nur so.

Ein API-Aufruf geht technisch gesehen an eine DLL und die ist auch extern (allerdings etwas anders extern als die Anwendung) und wenn diese DLL fehlt, dann geht auch der API-Aufruf in die Hose. Die externe Anwendung allerdings auch, denn die ruft ja auch die API (DLL) auf, die dann fehlt.

In diesem Sinne ein schönes Wochenende

KodeZwerg 15. Sep 2018 08:44

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413239)

Guck doch mal erste Zeile, Überschrift besagt: Data of the PROGRAM FILE

Es tut mir leid das Du nicht die Bedeutung von Windows-Api kennst und Du Dir nicht im Klaren bist was für einen non-sens hier geschrieben wird.

Um Dich ein wenig Aufzuklären, WinApi bedeutet man führt Befehle aus die das System per Library bereitstellt.
Also wenn man in Rubrik Win32/Win64 API (native code) eine Frage stellt, sollte man sich schon vorher schlau gemacht haben was dies überhaupt bedeutet.

Oder wäre wenn ich in meiner Versionskontrolle einer .exe Datei "blabla Microsoft blabla" schreibe dies dann automatisch eine Api für Dich?
Application Programming Interface kurz API bedeutet nicht ein externes Programm zu starten sondern das man sich der Libraries bedient, was compact.exe bzw. cipher.exe intern bestimmt ähnlich handhabt.

Wie dem auch sei, Du hast bestimmt Recht, alles wo Microsoft drauf steht ist ne Api und ich liege falsch.
Also ich gebe nach, dein externer Programm aufruf ruft gar kein Programm auf sondern ist pure Api Magie, siehe Dein Link Text "command-line version", Microsoft wollte bestimmt "Api Version" schreiben, naja die Wissen auch nicht wie es eigentlich lautet, schreib denen das mal.

Das Thema hat sich für mich mehr als erledigt.

Schönes Wochenende PeterPanino!

EWeiss 15. Sep 2018 08:50

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Das Thema hat sich für mich mehr als erledigt.
Sinn frei :)
Habe ich eigentlich schon ein paar Beiträge vorher erwartet.
Manche Leute wollen nicht geholfen werden in dem Fall sollte man sich zurück ziehen bevor die ganze Sache ausartet.

Zitat:

Application Programming Interface kurz API bedeutet nicht ein externes Programm zu starten sondern das man sich der Libraries bedient.
Auch wenn man ein externes Programm startet bedient man sich der WinAPI nämlich in dem Fall ShellExecute/Ex.
Wenn mir die Befehle\Funktionen bekannt sind dann löse ich das Problem innerhalb meiner Anwendung und verwende keine externen Anwendungen um zum ziel zu kommen.
Dafür reicht im Normalfall eine Batchdatei man benötigt dafür kein Delphi.

gruss

KodeZwerg 15. Sep 2018 09:00

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Hier ist Microsoft blabla zum Thema Windows-Api / Ntfs Kompression

Vielleicht schenkst Du denen ja etwas mehr Glaubwürdigkeit.

EWeiss 15. Sep 2018 09:01

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413244)
Hier ist Microsoft blabla zum Thema Windows-Api / Ntfs Kompression

Vielleicht schenkst Du denen ja etwas mehr Glaubwürdigkeit.

Huch?
Was denn nu!
Zitat:

Das Thema hat sich für mich mehr als erledigt.
gruss

KodeZwerg 15. Sep 2018 09:05

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von EWeiss (Beitrag 1413245)
Zitat:

Zitat von KodeZwerg (Beitrag 1413244)
Hier ist Microsoft blabla zum Thema Windows-Api / Ntfs Kompression

Vielleicht schenkst Du denen ja etwas mehr Glaubwürdigkeit.

Huch?
Was denn nu!
Zitat:

Das Thema hat sich für mich mehr als erledigt.
gruss

Ich konnt Ihn nicht dumm sterben lassen. (soll keine Beleidigung sein!)

EWeiss 15. Sep 2018 09:11

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Gut gemeint ;)
Nur diese Infos gehen ins leere weil er ein Command Line Tool für seine Lösung verwendet und es nicht programmtechnisch lösen will.
Ok bin wech.. ;)

gruss

himitsu 15. Sep 2018 09:30

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von EWeiss (Beitrag 1413247)
Gut gemeint ;)
Nur diese Infos gehen ins leere weil er ein Command Line Tool für seine Lösung verwendet und es nicht programmtechnisch lösen will.
Ok bin wech.. ;)

gruss

Es wurde auch gesagt, dass es so gegeh kann, aber es ist auch bissl nervig, wenn immer wieder Programme scheiße bauen, weil sie die Rückgaben von Funktionen oder ausgeführten Programmen nicht auswerten.

z.B. falls Windows mal den Programmnamen ändert oder die Parameter zum Steuern oder es durch irgendwas nicht mehr in den Suchpfaden liegt oder es wegen Problemen nichts macht.

PeterPanino 15. Sep 2018 09:33

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413241)
... WinApi bedeutet man führt Befehle aus die das System per Library bereitstellt.

Na, und was ist eine "Library". Genau! Eine externe Datei.

Die wesentliche Frage ist doch in Wirklichkeit, ob man zum Schreiben eine graue Tastatur verwendet oder eine mit Blümchen drauf! Mamma mia!

PeterPanino 15. Sep 2018 09:43

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von himitsu (Beitrag 1413249)
Es wurde auch gesagt, dass es so gegeh kann, aber es ist auch bissl nervig, wenn immer wieder Programme scheiße bauen, weil sie die Rückgaben von Funktionen oder ausgeführten Programmen nicht auswerten.

Niemand hindert einen daran, eine Fehlerbehandlung einzubauen und zu verwenden.

himitsu 15. Sep 2018 09:47

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Es bedeutet dass man eine offiziell dokumentierte Systemfunktion verwendet.

Bei diesem Programm ist das nicht so der Fall.


Und dass man die Fehlerbehandlung auch ordentlich und ohne umwege implementieren kann, denn dafür steht alles in der Dokumentation.

In einer guten API gibt es an bestehenden Funktionen keine Änderungen, nur Erweiterungen des Funktionsumfangs oder neue Funktionen.
Und die WinAPI hällt sich bei den dokumentierten Funktionen oft daran.
Wenn nicht, dann gibt es meistens auch eine entsprechende Vorankündigung, dass es "bald" geändert/abgeschafft wird.


Der ExitCode des Programms sagt ob es seine arbeit erfolgreich gemacht hat (aber nicht alle Programme setzen auch den ExitCode ... z.B. ich kenne fast keinen DelphiEntwickler, der das bei seinen Konsolenprogrammen und noch weniger, die es bei ihren VCL/FMX-Programmen machen)
und mindestens das hat man gefälligst auszuwerten.



[edit]
jupp niemand, nur fast 5 Seiten und nichts davon gesehn und auch nicht gelesen, dass es jemand vor hat.

PeterPanino 15. Sep 2018 09:56

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von himitsu (Beitrag 1413252)
Es bedeutet dass man eine offiziell dokumentierte Systemfunktion verwendet.

Delphi-Quellcode:
compact
ist eine (Betriebs-)Systemfunktion.

PeterPanino 15. Sep 2018 10:03

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Manche Leute diskutieren auch darüber, ob man Spaghetti in Salzwasser kochen soll oder in normalem Wasser, in das man dann eine Prise Salz gibt ...

Delphi.Narium 15. Sep 2018 10:11

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413253)
Delphi-Quellcode:
compact
ist eine (Betriebs-)Systemfunktion.

Nein!

compact ist ein Programm, dass eine Betriebssystemfunktion aufruft.

Welche, beschrieb Kodezwerg in seinem Delphiquelltextbeispiel.

Die Betriebs-)Systemfunktion bleibt auch erhalten, wenn man das Programm compact löscht.

EWeiss 15. Sep 2018 10:11

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413254)
Manche Leute diskutieren auch darüber, ob man Spaghetti in Salzwasser kochen soll oder in normalem Wasser, in das man dann eine Prise Salz gibt ...

Manche Leute diskutieren auch darüber ob dieser Thread noch Sinn macht!
Du bist doch gar nicht an einer Lösung interessiert sondern versuchst nur die Leute niederzumachen die DIR berechtigte Kriterien aufzeigen welche du einfach nur missachtest.

just my 2 Cent..
PS: Man kann auch in einem Beitrag mehrere Beiträge zitieren falls dir das noch nicht aufgefallen ist du musst also nicht jeden einzeln beantworten.

Zitat:

compact ist ein Programm, dass eine Betriebssystemfunktion aufruft.
Lass ihn doch er versteht euch nicht oder aber eure Beiträge sind ihm egal.

Sorry war doch schon wech! :)

gruss

KodeZwerg 15. Sep 2018 10:17

AW: NTFS-Komprimierung einer einzelnen Datei?
 
himitsu, gebe Dich geschlagen.

Es gibt halt unterschiedliche Auffassungen was ein Programm und was eine Library ist.
Für den TE ist alles was existiert eine Api da ja alles(?) irgendwie eine Funktion ausübt.

Da frag ich mich wozu der TE überhaupt Delphi benutzt, man kann vieles auch mit Batch Dateien erledigen. Oder PowerShell Skripte, da würde sich der TE mehr als Wohl fühlen, alles non-Api... erm Api Funktionen über dritt-Programme.

Emil, nimm mich mit! Bin auch wech


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Seite 1 von 2  1 2      

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