copying a file


    Feb 13 2010 | 1:27 pm
    Dear Developers,
    I'd like to copy files within an external and SDK gives some method to provide a plattform indipendent filehandling.
    Easy steps: 1. open source file 2. open destination file 3. copy src to dst 4. check file length to ensure copy was successful
    BUT.... it starts with the "path_opensysfile"-method. I do like this:
    `if (path_opensysfile(srcPath->s_name, srcPath->s_name, &fSrc, READ_PERM)) { object_error((t_object *)x, "error opening %s", srcPath->s_name); outlet_int(x->out, -1); return;
    }` srcPath is a symbol I pass from my patch - under windows it look like: "C:/Dokumente und Einstellungen/bla/Desktop/audios_to_copy/1.5.1 anFile.wav" OK, I should pass the name as well. I tried that, nothing works. Do I have to use somthing like thispath_nameconform(srcPath->s_name, fromConform, PATH_STYLE_NATIVE, PATH_TYPE_PATH); ??? and then give the fromConform as parameter??? I thought I am inside the max-world so I dont have to change the path. My second question is: How can I convert the char* of the symbol to an short. The documentation says it needs a short for the PATH ID... what is that?(short)srcPath->s_name - didnt do it.
    step 2: I guess the problem is the same... path/name-handlingpath_createsysfile(dstPath->s_name, (short)dstPath->s_name, type, &fDst); The external cannot create a new file in realtime. Compiler-output is fine (except the short-casting).
    step 3 - the copy process: I found two relevant methods: this is more elegant:long ret = sysfile_spoolcopy(fSrc, fDst, 0); And:path_copyfile(srcPath->s_name, srcName->s_name, dstPath->s_name, dstName->s_name)
    Still: if I could resolve problem 1, this one is obsolet.
    step 4 - checking the copied file: My simple idea was:
    long sizeDst;
    long sizeSrc;
    sysfile_geteof(fDst, &sizeDst);
    sysfile_geteof(fSrc, &sizeSrc);
    if(sizeDst != sizeSrc){
    //something went wrong
    }
    Well, I think I missed some very basic max-sdk knowledge or the solution is very simlpe. I would be thankful if anyone can help.
    Best, Johannes