private async void OpenFile() { SearchResultItemViewModel <T> selectedItem = SelectedItem; if (selectedItem == null) { return; } LibgenObject selectedLibgenObject = selectedItem.LibgenObject; if (selectedLibgenObject == null || !selectedLibgenObject.FileId.HasValue) { return; } LibraryFile file = await MainModel.LoadFileAsync(selectedLibgenObject.FileId.Value); string filePath = file.FilePath; if (File.Exists(filePath)) { Process.Start(filePath); } else { ShowMessage(Localization.ErrorMessageTitle, Localization.GetFileNotFoundErrorText(filePath)); } }
public DownloadBookViewModel GetDownloadBookViewModel(string md5Hash) { NonFictionBook nonFictionBook = localDatabase.GetNonFictionBookByMd5Hash(md5Hash.ToLowerInvariant()); if (nonFictionBook == null || !nonFictionBook.FileId.HasValue) { return(null); } LibraryFile libraryFile = localDatabase.GetFileById(nonFictionBook.FileId.Value); string downloadFileName = String.Concat(nonFictionBook.Authors, " - ", nonFictionBook.Title, ".", nonFictionBook.Format); if (downloadFileName.Length > 200) { downloadFileName = String.Concat(nonFictionBook.Md5Hash, ".", nonFictionBook.Format); } DownloadBookViewModel result = new DownloadBookViewModel { DownloadFileName = downloadFileName, LocalFilePath = libraryFile.FilePath }; if (fileExtensionContentTypeProvider.TryGetContentType(downloadFileName, out string contentTypeFromFormat)) { result.ContentType = contentTypeFromFormat; } else if (fileExtensionContentTypeProvider.TryGetContentType(downloadFileName, out string contentTypeFromLocalFileExtension)) { result.ContentType = contentTypeFromLocalFileExtension; } else { result.ContentType = "application/octet-stream"; } return(result); }
public TargetFileModuleListViewItem(LibraryFile file) { this.m_TargetFile = file; this.Text = Path.GetFileName(file.FileName); this.SubItems.Add(file.Revision); }
public ParticleImageInfo(LibraryFile file, int index) { Index = index; if (CEnvir.LibraryList.TryGetValue(file, out Library)) { Size = Library.GetSize(index); } }
public TargetLibraryPair(LibraryFile baseFile, List <Library> targetLibraries) { this.m_PairFileList = new List <SelectableLibraryFile>(); this.m_BaseFile = baseFile; this.m_BaseFileName = Path.GetFileName(this.m_BaseFile.FileName); this.SearchPair(targetLibraries); }
public MirProjectile(int startIndex, int frameCount, TimeSpan frameDelay, LibraryFile file, int startlight, int endlight, Color lightColour, Point origin) : base(startIndex, frameCount, frameDelay, file, startlight, endlight, lightColour) { Has16Directions = true; Origin = origin; Speed = 50; Explode = false; }
private void OpenFile(LibraryFile file) { try { this.m_TextEditor.Start(new TextEditorInfo(file)); } catch (ApplicationException ex) { MessageBox.Show(ex.Message, "エディタ起動エラー", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private async void Initialize() { mainActionProgress = 0; downloadId = null; if (LibgenObject.FileId.HasValue) { LibraryFile file = await MainModel.LoadFileAsync(LibgenObject.FileId.Value); localFilePath = file.FilePath; } else { localFilePath = null; } if (localFilePath != null) { downloadUrl = null; IsMainActionButtonEnabled = true; mainActionButtonMode = MainActionButtonMode.OPEN_FILE; mainActionButtonCaptionOption = MainActionButtonCaptionOption.OPEN; mainActionButtonTooltipOption = MainActionButtonTooltipOption.NO_TOOLTIP; } else { mainActionButtonMode = MainActionButtonMode.START_DOWNLOAD; mainActionButtonCaptionOption = MainActionButtonCaptionOption.DOWNLOAD; if (downloadMirrorName == null) { downloadActionTextOption = DownloadActionTextOption.DOWNLOAD; IsMainActionButtonEnabled = false; mainActionButtonTooltipOption = MainActionButtonTooltipOption.NO_DOWNLOAD_MIRROR; downloadUrl = null; } else { downloadActionTextOption = DownloadActionTextOption.DOWNLOAD_FROM_MIRROR; if (IsInOfflineMode) { IsMainActionButtonEnabled = false; mainActionButtonTooltipOption = MainActionButtonTooltipOption.OFFLINE_MODE_IS_ON; downloadUrl = null; } else { IsMainActionButtonEnabled = true; mainActionButtonTooltipOption = MainActionButtonTooltipOption.NO_TOOLTIP; downloadUrl = GenerateDownloadUrl(MainModel.Mirrors[downloadMirrorName]); } } } UpdateMainActionButtonCaption(); UpdateMainActionButtonTooltip(); UpdateDownloadStatus(MainModel.Downloader.GetDownloadItemByDownloadPageUrl(downloadUrl)); MainModel.Downloader.DownloaderEvent += DownloaderEvent; await InitializeCoverAsync(); }
public LibraryFileItem(LibraryFile item) { InitializeComponent(); if (!DesignMode) { _item = item; Init(); } }
/// <summary> /// ファイルを開きます。 /// </summary> /// <param name="file"></param> public void OpenFile(LibraryFile file) { //パスの設定 string editorPath = this.GetEditorPath(); //引数の設定 string editorArguments = this.GetEditorArguments(file); //プロセスの起動 this.StartProcess(editorPath, editorArguments); }
public void CanUnpackFile() { var file = new LibraryFile("TestFile.txt", SampleData.SampleFile); string unpackedFile = file.UnpackResources(Assembly.GetExecutingAssembly()); unpackedFile.ShouldNotBeNullOrEmpty(); File.Exists(unpackedFile).ShouldBeTrue(); File.ReadAllText(unpackedFile).ShouldBe(Encoding.UTF8.GetString(SampleData.SampleFile)); File.Delete(unpackedFile); }
public Library(LibraryFile libraryFile) { _libraryFile = libraryFile; Initialize(); foreach (var entry in libraryFile.Entries) { Add(entry); } }
private void cmdOpenFile_ItemClick(object sender, ItemClickEventArgs e) { dsTree.TreeRow row = (uxWhere.Properties.TreeList.GetDataRecordByNode(uxWhere.Properties.TreeList.FocusedNode) as DataRowView).Row as dsTree.TreeRow; LibraryGroup group = row.Data as LibraryGroup; LibraryFile file = row.Data as LibraryFile; if (file != null) { OpenPresentation(file.FullPath); } }
public MirProjectile(int startIndex, int frameCount, TimeSpan frameDelay, LibraryFile file, int startlight, int endlight, Color lightColour, Point origin, Type particleEmitter = null) : base(startIndex, frameCount, frameDelay, file, startlight, endlight, lightColour) { Has16Directions = true; Origin = origin; Speed = 50; Explode = false; if (Config.DrawParticles && particleEmitter != null) { _particleEmitter = (ParticleEmitter)Activator.CreateInstance(particleEmitter, this); GameScene.Game.MapControl.ParticleEffects.Add(_particleEmitter); } }
/// <summary> /// エディタの引数を指定します。 /// 引数内の%filename%は指定したLibraryFileのFileNameに置き換えられます。 /// </summary> /// <param name="file"></param> /// <returns></returns> private string GetEditorArguments(LibraryFile file) { string editorArguments = AppMain.g_AppMain.AppInfo.EditorArguments; if (!editorArguments.Contains("%filename%")) { //引数に%filename%が含まれていない場合、末尾に追加する if (editorArguments.Length > 0) { editorArguments += " "; } editorArguments += "%filename%"; } editorArguments = editorArguments.Replace("%filename%", "\"" + file.FileName + "\""); return(editorArguments); }
/// <summary> /// BaseFileに対応するファイルをライブラリから検索します。 /// </summary> /// <param name="lib"></param> /// <param name="directoryName"></param> private void SearchPair2(Library lib, string directoryName) { string path = directoryName; string baseFileName = Path.GetFileName(this.m_BaseFile.FileName); string filename = Directory.GetFiles(path).Where(f => Path.GetFileName(f) == baseFileName).FirstOrDefault() ?? ""; if (File.Exists(filename)) { LibraryFile file = LibraryFile.FromFile(filename); this.PairFileList.Add(new SelectableLibraryFile(file, lib)); } //サブディレクトリに対して再帰処理 Directory.GetDirectories(path).ToList().ForEach(subDir => { this.SearchPair2(lib, subDir); }); }
/// <summary> /// Attempts to load album artwork from { tag pictures, album folder, web services } /// </summary> public static void Load(LibraryFile libraryFile) { // Create specific artwork keys for download var artworkGrouping = libraryFile.Entries .Where(entry => LibraryArtworkLoader.HasValidArtworkKey(entry)) .GroupBy(entry => LibraryArtworkLoader.GetArtworkKey(entry)) .Actualize(); var artworkDict = new ConcurrentDictionary <string, SerializableBitmap>(); // Create tasks for downloading the artwork Parallel.ForEach(artworkGrouping, new ParallelOptions() { MaxDegreeOfParallelism = 8 }, group => { // Tag Pictures (TODO) // Album Folder (TODO) // Web Services // // 1) LastFm // 2) ... // // Attemp to download artwork var artworkTask = LastFmClient.DownloadArtwork(group.First()); // Run task artworkTask.Wait(); // Add to artwork result if (artworkTask.Result != null) { artworkDict.TryAdd(group.Key, artworkTask.Result); } }); // Distribute results foreach (var element in artworkDict) { // Add distinct artwork to library by "Artwork Key" libraryFile.AddArtwork(element.Key, element.Value); } }
/// <summary> /// Saves library file to specified path with specified name (no extension) /// </summary> public static void Save(LibraryFile libraryFile) { using (var stream = File.Create(LIBRARY_FILE)) { using (var zipStream = new GZipStream(stream, CompressionMode.Compress)) { try { Serializer.Serialize(libraryFile, zipStream); } catch (Exception ex) { throw ex; } } } }
private void Filter() { uxWhat.Properties.Buttons[(int)WhatButtons.Search].Enabled = false; Regex regEx = new Regex(uxWhat.Tag == null ? uxWhat.Text : "", RegexOptions.IgnoreCase); dsTree.TreeRow row = treeTable.FindByID((int)uxWhere.EditValue); var list = LibraryData.GetAllItems(); int n = list.Count(); if (row.ParentID == -1) { list = list.Where(item => regEx.IsMatch(item.Keywords) ); } else if (row.Data is LibraryFile) { LibraryFile file = row.Data as LibraryFile; list = list.Where(item => item.File.Group.Name == file.Group.Name && item.File.Name == file.Name && regEx.IsMatch(item.Keywords) ); } else { LibraryGroup group = row.Data as LibraryGroup; if (group != null) { list = list.Where(item => item.File.Group.FullPath == group.FullPath && regEx.IsMatch(item.Keywords) ); } else { list = Enumerable.Empty <IFileItem>(); } } uxImagesView.DataSource = list.ToList(); }
// Generate a new library file using the selected directory. private async Task <LibraryFile> DoGenerateLibrary(string selectedFolder, string libraryName) { LibraryFile tempLibraryFile = new LibraryFile(); await Task.Run(() => { ObservableCollection <Song> tempLibrary = GenerateLibrary.Create(selectedFolder); // Adds the songs contained within this new library to the library window. MusickLibrary.SongList.Union(tempLibrary).ToList(); // Create library entry for the application to use and see. tempLibraryFile = GenerateLibrary.CreateLibraryEntry(tempLibrary, libraryName); // Serialize Library. JSON.SerializeLibrary(libraryName, tempLibrary); return(tempLibraryFile); } ); return(tempLibraryFile); }
public MirEffect(int startIndex, int frameCount, TimeSpan frameDelay, LibraryFile file, int startLight, int endLight, Color lightColour) { StartIndex = startIndex; FrameCount = frameCount; Skip = 10; StartTime = CEnvir.Now; StartLight = startLight; EndLight = endLight; Delays = new TimeSpan[FrameCount]; LightColours = new Color[FrameCount]; for (int i = 0; i < frameCount; i++) { Delays[i] = frameDelay; //Light[i] = startLight + (endLight - startLight)/frameCount*i; LightColours[i] = lightColour; } CEnvir.LibraryList.TryGetValue(file, out Library); GameScene.Game.MapControl.Effects.Add(this); }
public static LibraryFile Load(string[] directories) { var libraryFile = new LibraryFile(); // Scan directories for files var files = directories.SelectMany(directory => { return(Directory.GetFiles(directory, "*.mp3", SearchOption.AllDirectories)); }).ToList(); var entries = new ConcurrentBag <ILibraryEntry>(); // Use TPL to create library entries Parallel.ForEach(files, /* new ParallelOptions() { MaxDegreeOfParallelism = 4 }, */ (file) => { // Generate entry var entry = LibraryEntryLoader.Load(file); // Keep track of completed entries if (entry != null) { entries.Add(entry); } }); foreach (var entry in entries) { // Add entry to the library // // TODO: HANDLE INVALID ENTRIES // if (entry.IsValid) libraryFile.AddEntry(entry); } return(libraryFile); }
public SelectableLibraryFile(LibraryFile file, Library lib) { this.m_TargetFile = file; this.m_TargetLibrary = lib; }
private void ScanDirectory <T>(string rootScanDirectory, string scanDirectory, Func <string, T> getObjectByMd5HashFunction, List <LibraryFile> foundFiles, ref int found, ref int notFound, ref int errors) where T : LibgenObject { try { foreach (string filePath in Directory.EnumerateFiles(scanDirectory)) { string relativeFilePath = filePath; if (relativeFilePath.StartsWith(rootScanDirectory, StringComparison.OrdinalIgnoreCase)) { relativeFilePath = relativeFilePath.Substring(rootScanDirectory.Length + 1); } string md5Hash; try { using (MD5 md5 = MD5.Create()) using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { byte[] md5HashArray = md5.ComputeHash(fileStream); md5Hash = BitConverter.ToString(md5HashArray).Replace("-", String.Empty).ToLowerInvariant(); } } catch (Exception exception) { Logger.Debug($"Couldn't calculate MD5 hash for the file: {filePath}"); Console.WriteLine($"Couldn't calculate MD5 hash for the file: {filePath}"); Logger.Exception(exception); errors++; continue; } try { T libgenObject = getObjectByMd5HashFunction(md5Hash); if (libgenObject != null) { Console.WriteLine($"Found: {relativeFilePath}"); LibraryFile libraryFile = new LibraryFile { FilePath = Path.Combine(rootScanDirectory, relativeFilePath), ArchiveEntry = null, ObjectType = libgenObject.LibgenObjectType, ObjectId = libgenObject.Id }; foundFiles.Add(libraryFile); found++; } else { Console.WriteLine($"Not found: {relativeFilePath}"); notFound++; } } catch (Exception exception) { Logger.Debug($"Couldn't lookup the MD5 hash: {md5Hash} in the database for the file: {filePath}"); Console.WriteLine($"Error: couldn't lookup the MD5 hash: {md5Hash} in the database for the file: {filePath}"); Logger.Exception(exception); errors++; continue; } } foreach (string directoryPath in Directory.EnumerateDirectories(scanDirectory)) { ScanDirectory(rootScanDirectory, directoryPath, getObjectByMd5HashFunction, foundFiles, ref found, ref notFound, ref errors); } } catch (Exception exception) { Logger.Exception(exception); Console.WriteLine($"Error while scanning the directory: {scanDirectory}"); Console.WriteLine(exception.ToString()); errors++; } }
// If a local library (or libraries) exists, this will deserialise the file(s) into the songList object for the Library window to use. private async Task <string> DoLoadLibrary() { await Task.Run(() => { foreach (var file in Directory.GetFiles(ConfigClass.appLibraryFolder)) { ObservableCollection <Song> tempLibrary = JSON.DeserializeLibrary(file); LibraryFile tempLibFile = GenerateLibrary.CreateLibraryEntry(tempLibrary, file); foreach (var song in tempLibrary.ToList()) { if (!File.Exists(song.FileLocation)) { tempLibrary.Remove(song); } } foreach (var musicFile in Directory.GetFiles(tempLibFile.LibrarySource, "*", SearchOption.AllDirectories)) { if (!tempLibrary.Any(p => p.FileLocation == musicFile)) { if (file.Contains(".mp3") || file.Contains(".wma") || file.Contains(".wav")) { tempLibrary.Add(GenerateLibrary.GenerateSong(musicFile)); } } } JSON.SerializeLibrary(file, tempLibrary); try { foreach (var tempSong in tempLibrary) { tempSongList.Add(tempSong); } MusickSettings.libList.Add(tempLibFile); // Creates an entry for the local library file to be displayed and interracted with. } catch // If the object returned is unusable, it'll throw this error. { Dispatcher.Invoke(() => { MusickError errorWin = new MusickError(); errorWin.Owner = this; errorWin.lblError.Content = "One or more libraries are corrupt/missing - Restart to generate a new library"; if (errorWin.ShowDialog() == true) { foreach (var libFile in Directory.GetFiles(ConfigClass.appLibraryFolder)) { File.Delete(libFile); } this.Close(); } } ); } } } ); MusickLibrary.SongList = tempSongList; lblStatus.Content = "Library loaded..."; await Task.Delay(729); return(""); }
/// <summary> /// TextEditorInfoオブジェクトの新しいインスタンスを初期化します。 /// </summary> /// <param name="targetFile"></param> public TextEditorInfo(LibraryFile targetFile) { this.m_TargetFile = targetFile; }
private void addFile(Project proj, WJPUser curUser, HttpPostedFileBase file, string FileType) { string needExt; if (FileType == "Source") needExt = ".java"; else if (FileType == "Library") needExt = ".jar"; else needExt = ""; if (file != null && file.ContentLength > 0) { if (needExt == "" || Path.GetExtension(file.FileName) == needExt) { string fileName = Path.GetFileName(file.FileName); bool found = false; if (FileType == "Source") foreach (SourceFile f in proj.SourceFiles) { if (f.FileName == fileName) { found = true; break; } } else if (FileType == "Library") foreach (LibraryFile f in proj.LibraryFiles) { if (f.FileName == fileName) { found = true; break; } } else foreach (DataFile f in proj.DataFiles) { if (f.FileName == fileName) { found = true; break; } } if (!found) { string path = Path.Combine( Server.MapPath("~/Projects/") + proj.ProjectID + "/" + FileType, fileName); file.SaveAs(path); ProjectFile f; if (FileType == "Source") f = new SourceFile(); else if (FileType == "Library") f = new LibraryFile(); else f = new DataFile(); f.Adder = curUser; f.Modifier = curUser; f.FileName = fileName; f.Project = proj; curUser.LastChangesDate = DateTime.Now; curUser.LastProject = proj; if (FileType == "Source") { curUser.SourcesAdded++; proj.SourceFiles.Add( (SourceFile)f ); profileDB.SourceFiles.Add( (SourceFile)f ); } else if (FileType == "Library") { curUser.LibrariesAdded++; proj.LibraryFiles.Add((LibraryFile)f); profileDB.LibraryFiles.Add((LibraryFile)f); } else { curUser.DataAdded++; proj.DataFiles.Add((DataFile)f); profileDB.DataFiles.Add((DataFile)f); } proj.LastChangesDate = DateTime.Now; proj.LastChanger = curUser; profileDB.Entry(curUser).State = EntityState.Modified; profileDB.Entry(proj).State = EntityState.Modified; profileDB.SaveChanges(); } else ViewBag.FileTypeError = "File with such name already exists"; } else ViewBag.FileTypeError = "Uploaded file isn't " + FileType + " file"; } }
static void Main(string[] args) { Console.WriteLine("Zak's Linker (early version...)"); ZLink link = new ZLink(); int argi = 0; while (argi < args.Length) { switch (args[argi]) { case "--memory": link.memsz = (int)link.NumberArg(args, ++argi); break; case "--offset": link.offset = (int)link.NumberArg(args, ++argi); break; case "--limit": link._limit = (int)link.NumberArg(args, ++argi); break; case "--dump": link.Finish(); byte[] data = new byte[link.GetLimit() - link.offset]; for (int i = 0; i < data.Length; i++) { data[i] = link.GetMemory().getU8((ulong)(link.offset + i), false); } File.WriteAllBytes(link.StringArg(args, ++argi), data); break; case "--readable": link._readable = true; break; case "--writable": link._writable = true; break; case "--executable": link._executable = true; break; case "--align": link.align = (int)link.NumberArg(args, ++argi); break; case "--section": link.GetLinker().setup(link.StringArg(args, ++argi), (ulong)link.offset, link._readable, link._writable, link._executable, (uint)link.align); link._readable = link._writable = link._executable = false; break; case "--help": case "--usage": case "-h": case "-u": Usage(); return; default: byte[] fbytes = File.ReadAllBytes(args[argi]); SimpleMemory fmem = new SimpleMemory(fbytes); LibraryFile f = new LibraryFile(args[argi], fmem); //Dump(f); link.GetLinker().add(f); break; } argi++; } }