Ist Datei noch Offen?

Dieses Thema im Forum "Scripting und Automatisierung" wurde erstellt von sbreit, 17.12.2006.

  1. sbreit

    sbreit Thread Starter unregistriert

    Beiträge:
    164
    Zustimmungen:
    1
    MacUser seit:
    28.12.2005
    Mahlzeit!

    Ich hatte es gestern noch irgendw gesehen, aber ich finde es jetzt um's Verrecken nicht mehr :(

    Ich müßte wissen, ob auf eine Datei noch ein Filehandle offen ist, also ob noch irgend ein Prozeß in die Datei schreibt. Folgendes Problem: Ich habe eine Ordneraktion, die Dateien verarbeiten soll. Die "krallt" sich allerdings schon die Datei, wenn sie angelegt wird (aber logischerweise noch leer ist).

    Daher will ich überprüfen (Schleife oder so), ob in die Datei noch geschrieben wird oder nicht. Wie kann ich das machen? :confused:

    Gruß
    Steffen
     
  2. w2lab

    w2lab MacUser Mitglied

    Beiträge:
    125
    Zustimmungen:
    1
    MacUser seit:
    21.02.2006
    Code:
    --set start to (current date)
    repeat while true
    	try
    		do shell script "lsof -t " & quoted form of (POSIX path of (item i of added_items))
    	on error
    		exit repeat
    	end try
    	--if (current date) > start + 30 then -- max 30 sekunden warten
    	--	exit repeat
    	--end if
    end repeat
    
     
  3. sbreit

    sbreit Thread Starter unregistriert

    Beiträge:
    164
    Zustimmungen:
    1
    MacUser seit:
    28.12.2005
    Danke erst mal für die Antwort.

    Ich kapiers aber immer noch nicht!? Mein Skript läßt die Datei jetzt in Ruhe, bis nicht mehr in die selbe geschrieben wird... Komisch ist nur, daß das Automator-Skript, was aufgerufen wird, funktioniert, wenn ich einfach eine Datei in den Zielordner kopiere, aber nicht mehr funktioniert, wenn ich eine Datei direkt von einem Programm aus (in meinem Fall der Scanner) dort hinein schreibe, obwohl in beiden Fällen mit der Ausführung erst begonnen wird, wenn die Dateien nicht mehr geschrieben werden :confused: :confused: :confused:

    Kann mal jemand bitte einen Blick auf mein Script werfen und mir sagen, wo der Fehler liegt?

    Code:
    on adding folder items to this_folder after receiving added_items
    	repeat with one_item in added_items
    		try
    			tell application "Finder" to set fileName to (name of item one_item)
    		end try
    		if fileName contains ".tif" then
    			
    			set LastFileSize to -1
    			set isGrowing to true
    			repeat until isGrowing is false
    				set CurrentFileSize to do shell script ("/bin/ls -l " & (quoted form of (POSIX path of (one_item))) & " | /usr/bin/awk '{print $5}'")
    				if CurrentFileSize is equal to LastFileSize then
    					set isGrowing to false
    				else
    					set LastFileSize to CurrentFileSize
    					delay 15
    				end if
    			end repeat
    			delay 5
    			tell application "Macintosh HD:Users:sbreit:Library:Workflows:Applications:Folder Actions:Scanordner.app"
    				open one_item
    			end tell
    		end if
    	end repeat
    end adding folder items to
    
     
Die Seite wird geladen...

Diese Seite empfehlen