private void mnuOpenFile_Click(object sender, RoutedEventArgs e) { FileItem selectedFile = GetSelectedFile(); if (selectedFile != null) { ShellApi.ShellExecute((IntPtr)0, "open", selectedFile.GetFullPath(), null, selectedFile.DirName, 5); } }
private bool DeleteFile(FileItem file) { var sfo = new ShellApi.SHFILEOPSTRUCT() { wFunc = ShellApi.FileFuncFlags.FO_DELETE, fFlags = ShellApi.FILEOP_FLAGS.FOF_ALLOWUNDO | ShellApi.FILEOP_FLAGS.FOF_NOCONFIRMATION, pFrom = file.GetFullPath() + char.MinValue + char.MinValue }; return(ShellApi.SHFileOperation(ref sfo) == 0); }
private void btnDelete_Click(object sender, RoutedEventArgs e) { var fileItemArray = _files.Where(f => f.Selected).ToArray(); if (fileItemArray.Length == 0) { return; } int successCount = 0; int failedCount = 0; int dirCount = 0; long size = 0; var fileNames = fileItemArray.Select(x => x.GetFullPath()).ToArray(); DeleteFiles(fileNames); for (int index = fileItemArray.Length - 1; index >= 0; --index) { FileItem file = fileItemArray[index]; if (!File.Exists(file.GetFullPath())) // if (DeleteFile(file)) { _files.Remove(file); ++successCount; size += file.Size; if (Directory.Exists(file.DirName) && CleanDir(file.DirName)) { ++dirCount; } } else { ++failedCount; } if (index % 100 == 0) { GC.Collect(); } } _files.RemoveOrphans(); sbiText.Content = string.Format("删除成功: {0}, 失败: {1}, 释放空间: {2}, 清理目录数={3}", successCount, failedCount, FormatSize(size), dirCount); }
private void Preview(Image img, FileItem[] files, int index) { BitmapImage bitmapImage1 = img.Source as BitmapImage; if (bitmapImage1 != null) { Stream streamSource = bitmapImage1.StreamSource; img.Source = null; if (streamSource != null) { img.Source = null; streamSource.Dispose(); } } if (index >= files.Length) { return; } FileItem fileItem = files[index]; string[] imageExts = { ".jpg", ".jpeg", ".png", ".gif", ".bmp" }; string ext = Path.GetExtension(fileItem.Name) ?? ""; ext = ext.ToLowerInvariant(); if (imageExts.Contains(ext)) { try { byte[] buffer = File.ReadAllBytes(fileItem.GetFullPath()); BitmapImage bitmapImage2 = new BitmapImage(); bitmapImage2.CacheOption = BitmapCacheOption.OnLoad; bitmapImage2.CreateOptions = BitmapCreateOptions.IgnoreImageCache; bitmapImage2.BeginInit(); bitmapImage2.StreamSource = new MemoryStream(buffer); bitmapImage2.EndInit(); img.Source = bitmapImage2; } catch (Exception ex) { } } }
public void GetFullPath_Success() { // Arrange & Act & Assert Assert.Equal($@"{ProjectPath}{DirectoryPath}{RelativePath}\{FileName}", _fileItem.GetFullPath()); }