• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Kopiowanie z pulpitu do aplikacji

0 głosów
72 wizyt
pytanie zadane 7 lutego w C# i .NET przez Shimeo7 Obywatel (1,700 p.)
Cześć, jestem trakcie tworzenia aplikacji coś na kształt total commander w ramach ćwiczeń(tak sobie wymyśliłem). Aplikację tworzę w WPF i mam pytanie, stworzyłem jeden listView, gdzie będę chciał umieścić pliki. Chciałbym, aby to działało w ten sposób:

- mam plik na pulpicie np. dokument.docx, klikam na ten dokument prawym przyciskiem myszy i klikam ,,kopiuj"

- wchodzę do swojej aplikacji i klikam w listView ,,wklej"

- chciałbym aby po skopiowaniu do listView dokument.docx znalazł się w folderze przypisanym do tego listView (folder byłby gdzieś na dysku) oraz był widoczny w aplikacji, gdzie jest jego nazwa, typ pliku, rozmiar

Chciałbym się zapytam od czego zacząć realizację takiego projektu, chciałbym również zaznaczyć, że nie jestem kompletnie zielony w c#, ale mistrzem to też nie jestem. Interfejs graficzny już zrobiłem w XAML.

Przeszukałem trochę internet, ale nie znalazłem tego czego szukałem. Z góry dziękuję za odpowiedź
komentarz 7 lutego przez NowyUrzydgownig Gaduła (3,610 p.)

Musisz przechwycić ten event wklejania i odpowiednio go okodować. Skoro to dokument worda to skorzystaj z Microsoft.Office.Interop.Word.

komentarz 7 lutego przez Shimeo7 Obywatel (1,700 p.)
tzn, może to być dokument worda, ale może to być np. obraz .iso lub dokument tekstkowy .txt. Swoją drogą do tego lepiej się nadaje listView, czy dataGrid?
komentarz 7 lutego przez NowyUrzydgownig Gaduła (3,610 p.)
Nie wiem, ale mechanizm jest ten sam. Sprawdzasz rozszerzenie pliku i pobierasz z niego dane odpowiednią metodą.(Chociaż powinno się raczej sprawdzać typ pliku za pomocą odpowiednich metod)
komentarz 21 lutego przez MikDal Mądrala (5,160 p.)
Czy uzyskałeś odpowiedź na swoje pytanie?

1 odpowiedź

0 głosów
odpowiedź 8 lutego przez MikDal Mądrala (5,160 p.)
edycja 8 lutego przez MikDal

To czego szukasz to dostęp do schowka (clipboard). C# ma dostęp do dwóch klas, które zarządzają tym:

Ta jest bodajże z XAML:

https://docs.microsoft.com/pl-pl/dotnet/api/system.windows.clipboard?view=netframework-4.7.2

A ta z starych Windows.Forms:

https://docs.microsoft.com/pl-pl/dotnet/api/system.windows.forms.clipboard?view=netframework-4.7.2

EDIT:

Przykładowy kod z wykorzystaniem pierwszej biblioteki:

if (Clipboard.ContainsFileDropList())
{
    System.Collections.Specialized.StringCollection myFiles = Clipboard.GetFileDropList();
}

1. Sprawdzam, czy w schowku znajdują się skopiowane dane.

2. Pobieram listę wszystkich skopiowanych plików (ważne, to jest lista ścieżek plików, które zostały skopiowane przez użytkownika!)

Teraz z tą listą możesz zrobić to co chcesz.

Podobne pytania

0 głosów
1 odpowiedź 179 wizyt
pytanie zadane 28 lipca 2018 w C# i .NET przez matmati2003 Użytkownik (610 p.)
+2 głosów
1 odpowiedź 196 wizyt
pytanie zadane 30 stycznia 2018 w C# i .NET przez Błażej Gonczar Obywatel (1,630 p.)
Porady nie od parady
Odznacz odpowiedź zieloną fajką, jeśli uważasz, że jest ona najlepsza ze wszystkich i umożliwiła ci rozwiązanie problemu.Najlepsza odpowiedź

62,435 zapytań

108,581 odpowiedzi

226,681 komentarzy

35,912 pasjonatów

Przeglądających: 180
Pasjonatów: 16 Gości: 164

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...