Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie kann ich auf ADS zugreifen ? (https://www.delphipraxis.net/33629-wie-kann-ich-auf-ads-zugreifen.html)

richard_boderich 10. Nov 2004 12:52


Wie kann ich auf ADS zugreifen ?
 
moin leutz,

weis jemand den grundsätzlichen weg an die ADS informationen einer speziellen datei ranzukommen?

wenn moeglich native delphi ohne win32 api?

jim_raynor 10. Nov 2004 12:57

Re: Wie kann ich auf ADS zugreifen ?
 
Sollte doch funktionieren wenn du als Dateinamen folgendes angibst:

Delphi-Quellcode:
DateiName:ADS-Name
So kannst du in jedem Programm auf einen ADS zugreifen. Allerdings wirst du nicht um die Win-API herumkommen, wenn du versuchst alle ADS einer Datei herauszufinden.

Bernhard Geyer 10. Nov 2004 12:57

Re: Wie kann ich auf ADS zugreifen ?
 
Ich würde sagen: Gar nicht.

Wie willst Du auf spezielle NTFS-Eigenheiten zugreifen ohne Win32-API-Befehle?
Es gibt in der Jedi Code Library einige Hilfsfunktionen/Klassen, um nicht komplett auf API-Ebene absteigen zu müssen.

richard_boderich 10. Nov 2004 13:04

Re: Wie kann ich auf ADS zugreifen ?
 
nein, ihr versteh mich falsch, ich will den ADS nicht aufrufen, ich will ihn nur sagen wir mal auslesen
z.b. in hex. form und den inhalt in einem memo darstellen, nun stellt sich die frage wie ich an die datenbytes
des streams rankomme gibst ne moeglichkeit das mit blockread/write zu machen. es muss sich doch die sektorennummer
auf der platte ermitteln lassen, wo der ads beginnt?

Bernhard Geyer 10. Nov 2004 13:26

Re: Wie kann ich auf ADS zugreifen ?
 
Zitat:

Zitat von richard_boderich
nein, ihr versteh mich falsch, ich will den ADS nicht aufrufen, ich will ihn nur sagen wir mal auslesen
z.b. in hex. form und den inhalt in einem memo darstellen, nun stellt sich die frage wie ich an die datenbytes
des streams rankomme gibst ne moeglichkeit das mit blockread/write zu machen. es muss sich doch die sektorennummer
auf der platte ermitteln lassen, wo der ads beginnt?

Wenn Du unter DOS mittels NTFS-Treiber arbeitest - vieleicht.
Aber unter einem NT-Basierten System wirst Du über die API gehen müssen (auch "nur" zum auslesen). Sei es nur die spezielle API oder die DateiName:ADS-Name-Form.
Was versprichst Du dir denn von einem solchen direkten Zugriff?

richard_boderich 10. Nov 2004 15:00

Re: Wie kann ich auf ADS zugreifen ?
 
hi bernhard,

ich arbeite unter winxp. der hintergrund, ich moechte ein programm schreiben, mit dem ich dateien per
drag and drop als ADS mit anderen dateien verbinde. im gegenzug moechte ich jedoch auch dateien bzw. objekte
aus dem ADS einer datei loeschen koennen oder den entsprechenden ADS wenigstens von der Hostdatei entfernen

Bernhard Geyer 10. Nov 2004 15:08

Re: Wie kann ich auf ADS zugreifen ?
 
Zitat:

Zitat von richard_boderich
ich arbeite unter winxp. der hintergrund, ich moechte ein programm schreiben, mit dem ich dateien per drag and drop als ADS mit anderen dateien verbinde. im gegenzug moechte ich jedoch auch dateien bzw. objekte
aus dem ADS einer datei loeschen koennen oder den entsprechenden ADS wenigstens von der Hostdatei entfernen

Da bleibt nur die spezielle Win32-API für NTFS und ADS.

jim_raynor 10. Nov 2004 15:10

Re: Wie kann ich auf ADS zugreifen ?
 
Ich hab dir die Antwort doch schon gegeben. In jedem Programm und in jeder Delphi Version kannst du den Dateiennamen um einen Doppelpunkt und den entsprechenden Namen des ADS erweitern. Schon kannst du darauf zugreifen.

Achtung. Merke gerade, dass er in einem normalen OpenDialog den Doppelpunkt anmerkert. Allerdings wenn du zum Beispiel in Ausführen von Windows

Delphi-Quellcode:
notepad c:\test.txt:test
Angibst, dann legt er einen ADS mit dem Namen test in der Datei c:\test.txt an. Genauso kannst du das bei Delphi bei Assign oder TFileStream.Create oder LoadFromFile oder ... auch machen.

Allerdings ist hier immer die Beschränkung, dass du den Namen des ADS kennen musst. Um alle ADS einer Datei zu ermitteln wirst du um API-Funktionen nicht herumkommen.

richard_boderich 10. Nov 2004 15:24

Re: Wie kann ich auf ADS zugreifen ?
 
hallo,

darum geht es mir ja auch eigentlich. wenn ich selber ads anlege, kenne ich den namen, kein problem.
wenn ich aber die festplatte sozusagen scanne, und alle dateien die ads haben auflisten will,
und noch dazu kommt, das eine datei mehrere ads haben kann, ist dat nich so einfach wie du ja selbst sagst.
also nochma ich suche eine api funktion , die von einer x beliebigen datei, die namen sämtlicher
verbundener ads liefert. hoffe das war nun präzise ausgedrückt


Ps: das dat nur mit api geht war mir schon beinahe klar, wollte nur nochmal eure bestaetigung haben ;)

richard_boderich 18. Nov 2004 12:11

Re: Wie kann ich auf ADS zugreifen ?
 
*PUSH*


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:55 Uhr.
Seite 1 von 2  1 2      

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