Objective c 目标c检查复制的文件是否准备就绪
我正在监视一个文件夹,当用户将文件复制到该文件夹时,我需要执行一个操作。但是,当我执行操作时,文件还没有内容。有没有办法检查复制的文件是否已准备就绪?Objective c 目标c检查复制的文件是否准备就绪,objective-c,Objective C,我正在监视一个文件夹,当用户将文件复制到该文件夹时,我需要执行一个操作。但是,当我执行操作时,文件还没有内容。有没有办法检查复制的文件是否已准备就绪?NSFileManager获得了一个方法-(BOOL)fileExistsAtPath:(NSString*)path 因此,您的代码如下所示: ([[[NSFileManager alloc] init] fileExistsAtPath:myPath] == true) { do sth.; } 您可能希望选择while循环,而不是if子句
NSFileManager
获得了一个方法-(BOOL)fileExistsAtPath:(NSString*)path
因此,您的代码如下所示:
([[[NSFileManager alloc] init] fileExistsAtPath:myPath] == true)
{ do sth.; }
您可能希望选择while循环,而不是if子句,但我想您知道如何处理它;)
希望我能帮忙。我终于拿到了。我可以使用NSPasteboard检查当前正在复制的文件。 有了这些信息,我可以比较源和目标之间的文件大小,以了解复制何时完成
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
NSArray *classes = [[NSArray alloc] initWithObjects:[NSURL class], nil];
NSDictionary *options = [NSDictionary dictionaryWithObject: [NSNumber numberWithBool:YES] forKey:NSPasteboardURLReadingFileURLsOnlyKey];
NSArray *copiedItems = [pasteboard readObjectsForClasses:classes options:options];
我试过了,文件确实存在,但内容还没有。也许你可以检查文件属性。如果大小几乎等于零,不要做任何事情,如果不是,请执行您的操作当用户复制一个非常大的文件时,它不够可靠100MB+您有到源文件的路径吗?如果是这样,
stat
两个文件并比较文件大小,直到它们相等。我没有源代码,除非你知道获取源代码的方法。我正在使用kqueues监视文件夹。不,您将无法通过监视dest文件夹来获取源文件名。另一个选项是,如果您可以从另一端更改复制操作,请使其触摸一个.tmp
文件,并在复制完成后触摸rm
。您将获得一个用于删除.tmp
文件的kevent
,您可以在该阶段做出响应。我无法控制复制操作