Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dateien anhand Liste löschen ....

Dateien anhand Liste löschen ....
19.12.2005 18:28:55
Thomas
Hallo!
Ich betreibe einen Online-Shop und in diesem Shop habe ich im Laufe der Zeit ca. 20.000 Artikel importiert... Dazu habe ich auch per FTP die Bilder hochgeladen, leider sind das mitlerweise 65.000 Stück also zuviele!
Kennt jemand eine Möglichkeit, wenn ich die Dateinamen in einer Excel - Spalte habe und in einem Verzeichnis die passenden Bilddateien,wie man dann per VBA die NICHT in der Liste enthaltenen Dateien löschen kann?
Danke für eure Hilfe
Thomas ...
P.S.: Für die Frage: "Warum machst Du das nicht der Script online?"
... diese Funktion bietet mein Shop, aber bei 65000 Bildern ging jeder Server in die Knie und mit einer localen Installation passierte das gleiche ...

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateien anhand Liste löschen ....
ransi
hallo thomas
stehen die dateien mit kompletter pfadangabe in der tabelle?
Wenn nein, wie ist der pfad?
ransi
AW: Dateien anhand Liste löschen ....
19.12.2005 19:31:02
Thomas
Hallo Ransi!
Über eine Verkettung kann ich den Dateien jeweils den kompletten Pfad zuweisen, das wäre desshalb sogar besser, das sich die Bilder in 4 unterschiedlichen Verzeichnissen
befinden (Bild-icon / Bild-thumb ...)
Spalte A wäre dann der Pfad, Spalte B der Dateiname und Spalte C wäre dann die Verkettung ...
Hilft das wieter?
Schönen Gruß
Thomas
AW: Dateien anhand Liste löschen ....
ransi
hallo
versuchs mal so:


Option Explicit
Public Sub test()
    const pfad='oberstes verzeichniss
    Dim gefunden
With Application.FileSearch
    .NewSearch
    .LookIn = pfad
    .SearchSubFolders = True
    .Filename = "*"
    .Execute
   For Each gefunden In .FoundFiles
        If WorksheetFunction.CountIf(Range("C:C"), gefunden) = 0 Then Kill (gefunden)
   Next
End With
End Sub


mach dir aber erst ne sicherheitskopie von dem Ordner.
Kill() löscht ohne Gnade und ohne Papierkorb.
ransi
Anzeige
AW: Dateien anhand Liste löschen ....
20.12.2005 14:40:47
Thomas
Hallo Ransi!
Also wenn ich das so eingebe:
Public

Sub test()
const pfad='C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0
Dim gefunden
With Application.FileSearch
.NewSearch
.LookIn = pfad
.SearchSubFolders = True
.Filename = "*"
.Execute
For Each gefunden In .FoundFiles
If WorksheetFunction.CountIf(Range("C:C"), gefunden) = 0 Then Kill (gefunden)
Next
End With
End Sub

... dann bekomme ich eine Fehlermeldung ... Syntax ...
Folgende Tests habe ich dann gamacht:
' gelöscht oder ' dahinter oder /statt\ ... hatt aber alles nix genützt
Was habe ich denn falsch gemacht? (Ich habe in Spalte C nur den Dateinamen stehen, wird da doch noch der Pfad benötigt?)
Ach und noch eine Frage:
Löscht diese Abrage die Dateien die in der Liste stehen oder die nicht in der Liste stehen, denn die Liste in Spalte C beinhaltet alle Dateinamen die benötigt werden ...
Anzeige
AW: Dateien anhand Liste löschen ....
20.12.2005 15:00:29
Beverly
Hi,
wie hast du den Dateinamen geschrieben? Evtl. fehlt da bloß die Dateiendung JPG oder so.
Bis später
Karin
AW: Dateien anhand Liste löschen ....
20.12.2005 16:45:06
Thomas
... leider nein, die Endungen der Dateinamen sind dran ...
Gruß
Thomas
AW: Dateien anhand Liste löschen ....
ransi
hallo thomas
setz den Pfad mal in anführungsstriche
const pfad="C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
in spalte C stehen jetzt also die dateinamen mit vollständiger Pfadangabe?
Also sowas ähnliches wie:
C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0\bild1.jpg ?
wenn das so ist müsste das hier laufen.

Sub test()
const pfad="C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim gefunden
With Application.FileSearch
.NewSearch
.LookIn = pfad
.SearchSubFolders = True
.Filename = "*"
.Execute
For Each gefunden In .FoundFiles
If WorksheetFunction.CountIf(Range("C:C"), gefunden) = 0 Then Kill (gefunden)
Next
End With
End Sub

wenn in spalte C nur die namen der dateien mit endung liegen sollte das hier gehen:

Sub test()
const pfad="C:\Programme\AppServ\www\oxid3\out\oxbaseshop\html\0\dyn_images\0"
Dim gefunden
With Application.FileSearch
.NewSearch
.LookIn = pfad
.SearchSubFolders = True
.Filename = "*"
.Execute
For Each gefunden In .FoundFiles
If WorksheetFunction.CountIf(Range("C:C"), dir(gefunden)) = 0 Then Kill (gefunden)
Next
End With
End Sub

das makro soll die löschen die NICHT in Spalte C aufgeführt sind.
Aber wie ich schon schrieb.
Lass das ganze erst mal mit sicherheitskopien laufen.
ransi
Anzeige
AW: Dateien anhand Liste löschen ....
31.12.2005 11:16:16
Thomas
DANKE für die super Hilfe !
Das Script hat nun super geklappt und mir ca. 50% Serverplatz freigemacht!
DANKE
Thomas

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige