def get_relative_uri(self): """ @returns: The files URI relative to its basepath """ if self.basePath: return Vfs.uri_get_relative(self.basePath,self._get_text_uri()) else: return self._get_text_uri()
#leaving only files behind for d in dirs: try: lines.remove(d) except ValueError: pass for music in lines: f = File.File(music) f.set_contents_as_text("1") #Copy all files to destination dest = File.File(sinkDir) for music in lines: dest = Vfs.uri_join( sinkDir, Vfs.uri_get_relative(sourceDir, music)) xfer = Vfs.FileTransfer( File.File(music)._get_impl(), dest) i = xfer.transfer(False, None)[0] if not i: ok("File transfer failed", i) def prog(*args): pass def done(*args): pass stm = Vfs.FolderScannerThreadManager(maxConcurrentThreads=1) t1 = stm.make_thread(sourceDir, True, True, prog, done) t2 = stm.make_thread(sinkDir, True, True, prog, done) stm.join_all_threads()
"ssh://[email protected]/home/john/phd"), ( ("foo","bar","baz"), "foo/bar/baz") ) for parts, result in URIS_TO_JOIN: got = Vfs.uri_join(*parts) ok("Join uri: %s" % result, got == result) RELATIVE_URIS = ( #from #to #relativ ( "file:///foo/bar", "file:///baz/bob", "file:///baz/bob" ), ( "file:///foo/bar", "file:///foo/bar/baz/bob", "baz/bob" ), ( "file:///foo/bar", "file:///foo/bar/baz", "baz" )) for f,t,result in RELATIVE_URIS: got = Vfs.uri_get_relative(f,t) ok("Get relative uri: %s" % result, got == result) VALID_URIS = ( #uri #valid ( "smb://192.168.1.1/foo/bar", True ), ( "ftp://192.168.1.1/foo/bar", True ), ( "file:///foo/bar", True ), ( "file:/foo/bar", False ), ( "ftp:192.168.1.1", False ), ( "/foo/bar", False )) for uri,result in VALID_URIS: desc = ("Invalid","Valid")[int(result)] ok("%s uri: %s" % (desc,uri),Vfs.uri_is_valid(uri) == result) finished()