Autor Thema: Dateien mit Sonderzeichen löschen  (Gelesen 5140 mal)

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Dateien mit Sonderzeichen löschen
« am: 12.11.12 - 14:25:54 »
Hallo Forum,

ich habe das Problem, dass ich mit dem KILL Befehl keine Dateinamen mit Sonderzeichen löchen kann.
Es geht hier im speziellen um Dateinamen mit japanischen Schriftzeichen.
Diese liegen in einem Verzeichnis auf der Platte und sollen per KILL Befehl gelöscht werden.
Dateinamen mit ASCII Standardzeichen werden korrekt gelöscht.

Code
	fileName = Dir$(pathName, 0)
	Do While fileName <> ""
		Print fileName
		Kill fileName
		fileName = Dir$()
	Loop

Kann jemdand weiter helfen?

System:
Windows Server 32 und 64 Bit
Lotus Notes 8.5.3 FP2
Domino 8.5.3 FP2


Grüße
Bernd
Arbeite klug, nicht hart.

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: Dateien mit Sonderzeichen löschen
« Antwort #1 am: 12.11.12 - 15:04:37 »
Hallo,

Spontan fallen mir 2 Wege ein, die man versuchen koennte.

Mittels Shell oder mit einem Ausflug in das FileSystemObject


Andreas

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Dateien mit Sonderzeichen löschen
« Antwort #2 am: 13.11.12 - 13:42:45 »
Hallo ascabg,

ich kann mir nicht vorstellen, dass in der heutige Zeit es nicht mit standard Mitteln von Lotus Script möglich sein soll, Dateien mit Sonderzeichen zu löschen.
Ich werde wohl nicht der einzige Weltweit sein, der hin und wieder mal Dateien mit exotischen Schriftzeichen aus dem Filesystem löschen will.  ;)

Grüße
Bernd
Arbeite klug, nicht hart.

Offline mezz

  • Junior Mitglied
  • **
  • Beiträge: 69
Re: Dateien mit Sonderzeichen löschen
« Antwort #3 am: 13.11.12 - 14:07:33 »
Da wirst du so deinen Spass mit haben, letzendlich musst du den gleichen Zeichensatz verwenden wie das Dateisystem. Wenn Notes das nicht selbstständig erkennt kannst du nur die jeweiligen Funktionen des Betriebssystems benutzen.

perl -e 's,,q#$:%*?:!&=(:!>@.#.$/,e;y;!-./:-@[-]{-~; a-uJP;;print;'

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Dateien mit Sonderzeichen löschen
« Antwort #4 am: 19.11.12 - 10:42:02 »
Hallo Forum,

ich bin das Problem nun mit einem Java Agenten angegangen.
Nun habe ich allerdings das Problem, dass zwar die Dateien gelöscht werden aber der Ordner nicht mehr.  :-:

Situation:
Ich habe einen Ordnerstruktur (z.B.: C:\Ordner1\Ordner2\Ordner3) in welchem diverse Dateien liegen. Die Dateien im Ordner3 lösche ich nun mit einem Java-Agenten heraus, was soweit auch funktioniert. Allerding kann ich nicht den Ordner (Ordner3) löschen, in welchem die Dateien lagen.
Die Java-Methode meldet nur, dass sie den Ordner nicht löschen konnte.
Der Ordner3 ist definitiv leer. Im Ordner2 und Ordner1 befinden sich noch Dateien und andere Ordner.  Laut Java ist dies aber kein Problem da der Ordner3 gelöscht werden soll.

Wo ist das Problem?
Gibt es hier evtl. Sicherheitseinstellungen am Dominoserver die das unterbinden?


Code
	// Löscht das übergebene Verzeichnis aus dem Filesystem
				try
				{

					delPath = pDoc.getItemValueString(DOC_FIELD_DELFOLDER);
					File uploadDir = new File(delPath);
					
					// Dateien aus Ordner löschen
					File[] files = uploadDir.listFiles();
					for (File file : files)
					{
						file.delete();
					}
					
					// Ordner löschen
					if (uploadDir.delete() == false)
					{
						nlog.logError(0, "Can't delete folder: " + delPath);
					}
					else
					{
						nlog.logAction(NotesLog.LEVEL_DEBUG, "Deleted folder: " + delPath);
					}
				}
				catch (Exception exc)
				{
					nlog.logError(0, "Error, Message: " + exc.getMessage());
				}
				return;

System:
Domino 8.5.3 FP2

Grüße
Bernd
Arbeite klug, nicht hart.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Dateien mit Sonderzeichen löschen
« Antwort #5 am: 19.11.12 - 12:53:07 »
Code
/**
   * @param args
   */
  public static void main(String[] args)
  {
    File dir = new File("c:/test");
    if (dir.isDirectory())
    {
      File[] files = dir.listFiles();
      for (File file : files)
      {
        file.delete();

      }
      if (dir.list().length == 0)
      {
        dir.delete();
      }
    }
Das müsste normal funktionieren. Ist aber dasselbe wie bei dir, nur halt mit ein paar sinnvollen Standard-Checks. Kannst Du bitte mal die erste Seite des Design Elements Java Agent posten, d.h. dieses Pop-Up Fenster, wo man den Namen des Agents angibt. Da gabs früher eine Java-Security Radio-Box Auswahl, die früher Wunder bewirkt hat und die mir hier keiner glaubt.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Dateien mit Sonderzeichen löschen
« Antwort #6 am: 19.11.12 - 13:01:56 »
Ich hoffe Du meintest diese Einstellungen:

(Siehe Anhänge!)

Grüße
Bernd
Arbeite klug, nicht hart.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Dateien mit Sonderzeichen löschen
« Antwort #7 am: 19.11.12 - 14:39:32 »
hm. Daran kanns nicht liegen.

Möglicherweise ist noch eine Datei in dem Ordner auf die Notes keine Berechtigungen hat?
Irgendwelche anderen seltsamen Berechtigungen.
Hast Du vor dem Löschen mal probiert System.out.println(dir.list().length())?
Vielleicht
Ich würd das nie programmieren sondern guava oder Apache commons benutzen.
Versuch mal die entsprechenden jars ins lib-ext zu tun und dann die hier angegebenen Methoden.
Is einfach weniger code, den man selber schreiben muss.
http://stackoverflow.com/a/7768106
Guava ist hipper und ein bischen besser als apache commons. 

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Legolas

  • Senior Mitglied
  • ****
  • Beiträge: 446
  • Geschlecht: Männlich
Re: Dateien mit Sonderzeichen löschen
« Antwort #8 am: 19.11.12 - 15:58:17 »
Hi  Pitiyankee,

schau dir mal meinen Code an!
Das ist doch genau dieser!  ;)

Grüße
Bernd

Arbeite klug, nicht hart.

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Dateien mit Sonderzeichen löschen
« Antwort #9 am: 19.11.12 - 20:21:24 »
Du hast kein
System.out.println(dir.list().length())
vor dem Löschen des directories.

Vielleicht sind da noch irgendwelche versteckten Dateien drin, auf die Du keine Berechtigung hast.

Du könntest vielleicht auch vor dem Löschen des Dirs mit Thread.sleep(2000) 2 Gedenksekunden einbauen. Möglicherweise sind die Dateien noch nicht fertig gelöscht.

Ansonsten beunruhigt mich, dass guava ihre ganzen-Ordner-Löschen Methode herausgeschmissen hat. Begründet haben die das mit dirlinks und race conditions, wobei nicht klar ist, ob die race conditions als Unterpunkt von dirlinks betrachten.
Hast Du mal versucht den Ordner einfach mit einem kleinen Java Programm zu löschen, ohne Notes mein ich? Das funktioniert bei mir nämlich mit Deinem und meinem Code.

Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz