internal void UpdateFromInfo(SharedDirectoryInfo info) { var newDirectories = new RemoteDirectory[info.Directories.Length]; for (var x = 0; x < info.Directories.Length; x++) { var dir = (RemoteDirectory)GetSubdirectory(info.Directories[x]); if (dir == null) { dir = new RemoteDirectory(core, PathUtil.Join(m_FullPath, info.Directories[x])); } newDirectories[x] = dir; } var newFiles = new RemoteFile[info.Files.Length]; for (var x = 0; x < info.Files.Length; x++) { var file = (RemoteFile)GetFile(info.Files[x].Name); if (file == null) { file = new RemoteFile(this, info.Files[x]); } else { file.UpdateFromInfo(info.Files[x]); } newFiles[x] = file; } m_SubDirectories = newDirectories; m_Files = newFiles; m_State = RemoteDirectoryState.ContentsReceived; }
internal void UpdateFromInfo(SharedDirectoryInfo info) { var newDirectories = new RemoteDirectory[info.Directories.Length]; for (int x = 0; x < info.Directories.Length; x++) { RemoteDirectory dir = (RemoteDirectory) GetSubdirectory(info.Directories[x]); if (dir == null) dir = new RemoteDirectory(PathUtil.Join(m_FullPath, info.Directories[x])); newDirectories[x] = dir; } var newFiles = new RemoteFile[info.Files.Length]; for (int x = 0; x < info.Files.Length; x++) { RemoteFile file = (RemoteFile) GetFile(info.Files[x].Name); if (file == null) file = new RemoteFile(this, info.Files[x]); else file.UpdateFromInfo(info.Files[x]); newFiles[x] = file; } m_SubDirectories = newDirectories; m_Files = newFiles; m_State = RemoteDirectoryState.ContentsReceived; }