private IDataObject CreateDataObject(PackagePart packagePart) { var data = new DataObject(); data.SetData(PackageFileDataFormat, packagePart.Path); if (packagePart is PackageFile packageFile) { long?fileSize = null; if (packageFile.OriginalPath != null && File.Exists(packageFile.OriginalPath)) { // Try to get the length, it may not really exist try { fileSize = new FileInfo(packageFile.OriginalPath).Length; } catch (FileNotFoundException) { } } data.SetData(NativeDragDrop.FileGroupDescriptorW, NativeDragDrop.CreateFileGroupDescriptorW(packageFile.Name, packageFile.LastWriteTime, fileSize)); data.SetData(NativeDragDrop.FileContents, new LazyPackageFileStream(packageFile)); } return(data); }
private IDataObject CreateDataObject(PackagePart packagePart) { var data = new DataObject(); data.SetData(PackageFileDataFormat, packagePart.Path); if (packagePart is PackageFile packageFile) { data.SetData(DataFormats.FileDrop, new[] { packageFile.Name }); data.SetData(NativeDragDrop.FileGroupDescriptorW, NativeDragDrop.CreateFileGroupDescriptorW(packageFile.Name, packageFile.LastWriteTime)); data.SetData(NativeDragDrop.FileContents, new LazyPackageFileStream(packageFile)); } return(data); }
private IDataObject CreateDataObject(PackagePart packagePart) { var data = new DataObject(); data.SetData(PackageFileDataFormat, packagePart.Path); if (packagePart is PackageFile packageFile) { long?fileSize = null; if (packageFile.OriginalPath != null) { fileSize = new FileInfo(packageFile.OriginalPath).Length; } data.SetData(NativeDragDrop.FileGroupDescriptorW, NativeDragDrop.CreateFileGroupDescriptorW(packageFile.Name, packageFile.LastWriteTime, fileSize)); data.SetData(NativeDragDrop.FileContents, new LazyPackageFileStream(packageFile)); } return(data); }