Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Datum von Verzeichnissen ändern

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1235
Wohnort: Ruhrpott

BeitragVerfasst am: 24.04.2016, 15:59    Titel: Datum von Verzeichnissen ändern Antworten mit Zitat

Hallo allerseits!

Beim Stöbern auf der Portalseite bin ich auf dieses Programmbeispiel von Volta gestoßen:
https://www.freebasic-portal.de/code-beispiele/dateien-laufwerke/dateidatum-unter-win-lesen-setzen-95.html

Bei Dateien funktioniert das auch wunderbar, bei Ordnern bekomme ich immer nur Nullen zurückgeliefert.
Code:
#Include Once "windows.bi"
#Include Once "vbcompat.bi" 'file.bi wird mitgeladen

Dim As SECURITY_ATTRIBUTES sa
Dim As HANDLE FileHdl
Dim As FILETIME cTime, lTime, lwTime

Dim As String fn = "e:\NewDir"

sa.nLength = SizeOf(SECURITY_ATTRIBUTES)
sa.lpSecurityDescriptor = NULL
sa.bInheritHandle = TRUE
   
? CreateDirectory(fn,@sa)
   
FileHdl = CreateFile(fn, _
                     GENERIC_READ   Or GENERIC_WRITE, _
                     FILE_SHARE_READ Or FILE_SHARE_WRITE, _
                     @sa, _
                     CREATE_NEW, _
                     0, _
                     0)
                     
Print "Filehandle ";FileHdl
Print                     

GetFileTime(FileHdl, @cTime, @lTime, @lwTime)

Print cTime.dwLowDateTime;" ";cTime.dwHighDateTime
Print lTime.dwLowDateTime;" ";lTime.dwHighDateTime
Print lwTime.dwLowDateTime;" ";lwTime.dwHighDateTime

Sleep

Laut MSN müsste das funktionieren, tut es aber nicht. Der Ordner wird anstandslos erstellt, aber das Erstellungsdatum kann ich nicht auslesen.

Mit OpenFile bekomme ich Fehlercode 5 = "Zugriff verweigert".

Weiß jemand weiter?

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 955
Wohnort: Austria

BeitragVerfasst am: 24.04.2016, 17:18    Titel: Antworten mit Zitat

Ich hab keinen konkreten Grund, was der Fehler bei dieser Implementierung ist, aber ich hab vor einiger Zeit einmal ein kleines Programm geschrieben, dass u.a. diese Funktion erfüllt. Ich hab einfach den ganzen (nicht-aufgeräumten) Ordner inkl. Test-Programmen und Code-Schnipsel geZIPt - vielleicht ist etwas brauchbares dabei:
http://users.freebasic-portal.de/stw/files/prog/fb/misc/setdate.zip
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 24.04.2016, 18:42    Titel: Antworten mit Zitat


_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
St_W



Anmeldungsdatum: 22.07.2007
Beiträge: 955
Wohnort: Austria

BeitragVerfasst am: 24.04.2016, 19:41    Titel: Antworten mit Zitat

Höchstwahrscheinlich Tests für Unicode Support. Die Zeichen ergeben mit Sicherheit keinen Sinn. Und/oder Tests für lange Pfade/Dateinamen (> ca. 250 Zeichen).

Ich vermute man kann die Ordner ohne bedenken löschen bzw. erst gar nicht entpacken ohne dass die Funktionalität des Codes beeinträchtigt wird (habs aber nicht probiert, ob nicht vielleicht irgendwo etwas davon hardgecoded ist).

Wie gesagt, ich hab nicht aussortiert, sondern einfach gezippt was da war. Vielleicht hab ich mal ein wenig Zeit und räume das auf mit ReadMe und so, aber derzeit sind das wirklich nur ein paar Codeschnipsel. Entsprechend sollte der Code auch mit Vorsicht genossen werden. Ich bin mir ziemlich sicher, dass er einmal für meinen Verwendungszweck (Auslesen und Setzen von Datei-Daten(im Sinne: Mehrzahl Datum)) funktioniert hat, aber gebe keinerlei Garantie, dass er das auch wirklich (noch) tut. Mit Sicherheit ist vor dessen Verwendung (in Ausschnitten) auch ein wenig Aufräumen erforderlich.
_________________
Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 25.04.2016, 00:53    Titel: Antworten mit Zitat

OT: Für sowas habe ich auch immer Testordner auf der Platte parat... lachen

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1235
Wohnort: Ruhrpott

BeitragVerfasst am: 25.04.2016, 11:18    Titel: Antworten mit Zitat

Vielen Dank für die schnelle Hilfe, jetzt klappt's. happy

Für alle, die es interessiert: Wenn man die Funktion filehandel durch
Code:
Function filehandel( fname As String ) As HANDLE
  Function = CreateFile(fname, _
                         GENERIC_READ   Or GENERIC_WRITE, _
                         FILE_SHARE_READ Or FILE_SHARE_WRITE, _
                         NULL, _
                         OPEN_EXISTING, _
                         FILE_FLAG_BACKUP_SEMANTICS, _
                         NULL)
End Function
ersetzt, funktioniert Voltas Programmbeispiel auch mit Ordnern.

Nebenbei: Ich habe mal -nur so aus Spaß- meine Festplatte nach Ordnern und Dateien durchsucht, in denen das Wort "test" vorkommt : 3769 Stück. grinsen

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz