I’ve since abandoned this approach. > > > * Did you see my previous question? It looked like your logic would result in > directories xxx-APPL, xxx-APPL-APPL, xxx-APPL-APPL-APPL, etc. -- or was I > mistaken? If there is code elsewhere that is resetting shootPath to not have > the APPL suffix, could you be inadvertently recreating the old directory? > What if you put an NSLog after every line of code that does a mkdir, to make > sure directories only get created once? Are you sure it's the mp4 files you > copy *after* renaming the directory that get put in the new directory? >
I was checking for the directory existing, if it did, it didn’t make a new version. > * What if you put a breakpoint on the call to moveItemAtPath:toPath:error: > and step over it? Do you see in the Finder that there is one directory before > the call and two directories afterward? If so, there's your smoking gun that > there's a bug in the method. If you see only one directory (with the new > name), that would suggest that moveItemAtPath:toPath:error: is doing its job > as expected and something else is recreating the old directory. > as I said, code is gone. > * What if you don't use NSFileManager to rename the directory, but > rename([shootPath UTF8String], [newShootPath UTF8String])? > > * To use the simplest dataset possible: what if you hardcode it to copy two > specific mp4 files, where the second triggers the directory rename? Does this > reproduce the bug? > > * What if you comment out the code that copies the mp4 files -- do you still > get two directories (which are now empty instead of containing copies of the > files)? > > * Are you using copyItemAtPath:toPath:error: like I did, or something else to > copy the files? > no. I wasn’t attempting to copy files, simply move them. But while I appreciate the help... at this point I simply moved on looked at another solution that I wasn’t fond of, but did the job and worked around it. thanks! Scott > --Andy > > On Apr 17, 2011, at 10:41 PM, Scott Anguish wrote: > >> not sure what to say, my code wasn’t doing that. >> >> I ended up churning through all the files once, finding the .mp4s, getting >> the whereas information and then making the directory I needed first. >> >> I just didn’t have more time to spend trying to figure it out. >> >> Now I feel like I need to though... :-/ >> >> that it was ‘making’ a new directory with -APPL at the end was the oddest >> part. rather than moving it. >> >> On Apr 17, 2011, at 1:59 AM, Andy Lee wrote: >> >>> I tried to reproduce your problem by creating directories ~/wtf/FromHere >>> and ~/wtf/ToHere, with three files in FromHere named 1, 2, and 3. I switch >>> over to using "ToHere-NEW" when it detects a file whose name is >= "2". >>> >>> My test code renamed the directory and switched over to it just fine: >>> >>> - (void)test >>> { >>> NSFileManager *fileManager = [NSFileManager defaultManager]; >>> NSString *fromDir = [@"~/wtf/FromHere" stringByStandardizingPath]; >>> NSString *originalToDir = [@"~/wtf/ToHere" stringByStandardizingPath]; >>> NSString *toDir = originalToDir; >>> NSError *error = nil; >>> NSArray *filesToCopy = [[fileManager contentsOfDirectoryAtPath:fromDir >>> error:&error] >>> >>> sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; >>> >>> for (NSString *fileName in filesToCopy) >>> { >>> // Rename the destination directory if necessary. >>> if ([fileName intValue] >= 2) >>> { >>> NSLog(@"File name is %@; will rename directory if necessary.", >>> fileName); >>> >>> NSString *newToDir = [originalToDir >>> stringByAppendingString:@"-NEW"]; >>> >>> if (![fileManager fileExistsAtPath:newToDir]) >>> { >>> if ([fileManager moveItemAtPath:toDir toPath:newToDir >>> error:&error]) >>> { >>> NSLog(@"...SUCCESS: Renamed %@ to %@.", toDir, newToDir); >>> } >>> else >>> { >>> NSLog(@"...ERROR: Failed to rename %@ to %@ -- %@.", >>> toDir, newToDir, error); >>> abort(); >>> } >>> >>> toDir = newToDir; >>> } >>> else >>> { >>> NSLog(@"...%@ already exists; no need to rename.", newToDir); >>> } >>> } >>> >>> // Move the file to the directory at shootPath. >>> NSString *oldFilePath = [fromDir >>> stringByAppendingPathComponent:fileName]; >>> NSString *newFilePath = [toDir >>> stringByAppendingPathComponent:fileName]; >>> >>> if ([fileManager copyItemAtPath:oldFilePath toPath:newFilePath >>> error:&error]) >>> { >>> NSLog(@"Copied file %@ to %@.", oldFilePath, newFilePath); >>> } >>> else >>> { >>> NSLog(@"...ERROR: Failed to copy %@ to %@ -- %@.", oldFilePath, >>> newFilePath, error); >>> abort(); >>> } >>> } >>> } >>> >>> 2011-04-17 01:46:41.013 Scratcho[2630:a0f] Copied file >>> /Users/alee/wtf/FromHere/1 to /Users/alee/wtf/ToHere/1. >>> 2011-04-17 01:46:41.014 Scratcho[2630:a0f] File name is 2; will rename >>> directory if necessary. >>> 2011-04-17 01:46:41.069 Scratcho[2630:a0f] ...SUCCESS: Renamed >>> /Users/alee/wtf/ToHere to /Users/alee/wtf/ToHere-NEW. >>> 2011-04-17 01:46:44.712 Scratcho[2630:a0f] Copied file >>> /Users/alee/wtf/FromHere/2 to /Users/alee/wtf/ToHere-NEW/2. >>> 2011-04-17 01:46:44.712 Scratcho[2630:a0f] File name is 3; will rename >>> directory if necessary. >>> 2011-04-17 01:46:44.713 Scratcho[2630:a0f] .../Users/alee/wtf/ToHere-NEW >>> already exists; no need to rename. >>> 2011-04-17 01:46:46.934 Scratcho[2630:a0f] Copied file >>> /Users/alee/wtf/FromHere/3 to /Users/alee/wtf/ToHere-NEW/3. >>> >>> --Andy >>> >> > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com