public UploadResumeReport GetRemainingFiles() { var filesToCheck = _filesToCheck.ToList(); int filesExistCount = 0; for (int i = 0; i < filesToCheck.Count(); i++) { IZipEntry zipEntry = filesToCheck[i]; _notifier.CheckingForUploadedFile(_gameName, zipEntry.FileName); if (!_xboxGameRepository.Exists(_gameName, zipEntry.FileName, zipEntry.UncompressedSize)) { break; } filesExistCount++; _notifier.FileAlreadyExists(_gameName, zipEntry.FileName); } var filesUploaded = filesToCheck.GetRange(0, filesExistCount); long sizeUploaded = filesUploaded.Sum(x => x.UncompressedSize); filesToCheck.RemoveRange(0, filesExistCount); return(new UploadResumeReport(filesToCheck, sizeUploaded)); }
private void ExtractZipToDisk(IZipEntry zipEntry, string gameName) { _notifier.ExtractFileToDisk(gameName, zipEntry.FileName); var xboxTempFileDirectory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "XboxFtp", "Temp", gameName); zipEntry.Extract(xboxTempFileDirectory, ExtractExistingFileAction.OverwriteSilently); XboxTempFileTransferRequest request = new XboxTempFileTransferRequest() { Path = zipEntry.FileName, TempFilePath = Path.Combine(xboxTempFileDirectory, zipEntry.FileName) }; _notifier.AddingToUploadQueue(gameName, zipEntry.FileName); _xboxFtpRequests.Add(request); }
public void SetUp() { mFileSystem = A.Fake <IFileSystem>(); mZipFile = A.Fake <IFile>(); A.CallTo(() => mFileSystem.GetFile("zip file name")).Returns(mZipFile); mZip = A.Fake <IZipFile>(); A.CallTo(() => mZipFile.ReadZip()).Returns(mZip); mZipEntry = A.Fake <IZipEntry>(); IEnumerator <IZipEntry> enumerator = new List <IZipEntry>() { mZipEntry }.GetEnumerator(); A.CallTo(() => mZip.GetEnumerator()).Returns(enumerator); mFileExistenceChecker = A.Fake <IFileExistenceChecker>(); mUnderTest = new DbUnzipper(mFileSystem, mFileExistenceChecker); Settings.Default.TemporaryTxtDbPath = "unpack directory"; }
private void ExtractZipToMemory(IZipEntry zipEntry, string gameName) { using (Stream reader = zipEntry.OpenReader()) { byte[] data; data = new byte[zipEntry.UncompressedSize]; reader.Read(data, 0, (int)zipEntry.UncompressedSize); XboxInMemoryTransferRequest request = new XboxInMemoryTransferRequest() { Path = zipEntry.FileName, Data = data }; reader.Close(); _notifier.AddingToUploadQueue(gameName, zipEntry.FileName); _xboxFtpRequests.Add(request); } }
private bool CreateNode(IZipEntry entry) { // create internal node var currentNode = this; var pathBuilder = new StringBuilder(FullName()); var nameBuilder = new StringBuilder(); foreach (char c in entry.FullName.Substring(FullName().Length)) { pathBuilder = pathBuilder.Append(c); if (c == '/') { var dirEntry = new CustomZipEntry( 0, pathBuilder.ToString(), entry.LastWriteTime, 0, nameBuilder.ToString(), null ); var node = new FileTreeNode(dirEntry); currentNode.mChildren.Add(node); node.mParent = currentNode; currentNode = node; nameBuilder = nameBuilder.Clear(); } else { nameBuilder = nameBuilder.Append(c); } } // create leaf node for the zip entry if (!entry.FullName.EndsWith('/')) { var node = new FileTreeNode(entry); currentNode.mChildren.Add(node); node.mParent = currentNode; } return(true); }
public bool Insert(IZipEntry entry) { if (IsDirectory() && entry.FullName.StartsWith(FullName())) { foreach (FileTreeNode child in mChildren) { if (child.Insert(entry)) { return(true); } } return(CreateNode(entry)); } else { return(false); } }
public FileTreeNode(IZipEntry entry) { mNodeEntry = entry; }
public FileTreeNode(ZipArchiveEntry entry) { mNodeEntry = new ZipEntry(entry); }