Watch Folder



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 13/08/2012 at 02:09, xxxxxxxx wrote:

    Hey all,

    I'm trying to write a script that watches a folder and looks for new C4D files. Once it finds a new file it should add the file to the render que. The code works fine in an external editor, however in C4D it doesn't work. When I run the script and add a new file to the watch folder, C4D hangs and I have to restart it.

    Does anyone have a clue why? See the code below.

    Greets,
    Hans Willem

    import c4d
    import os
    import time

    def watchFolder() :
        before = os.listdir('/Users/blabla/watch folder')
        while 1:
            global newFiles
            time.sleep(3)
            after = os.listdir('/Users/blabla/watch folder')
            newFiles = list(set(after)-set(before))
            if len(newFiles) > 0:
                renderFile()
                break
                before = after

    def renderFile() :
        for i in newFiles:
            if i[-3:] =='c4d':
                # then some code here to add the file to the renderque and start rendering
        watchFolder()

    watchFolder()



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 13/08/2012 at 03:27, xxxxxxxx wrote:

    Of course it hangs, because you block the main thread. Put your code into a threaded environment. :)
    For R13+, see the c4d.threading module which works afaik fine in the Script Manager. For R12, you'd need to write a plugin that uses the built-in threading module.

    -Nik


Log in to reply