• 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
67 wizyt
pytanie zadane 7 lutego w C# i .NET przez Shimeo7 Obywatel (1,020 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,270 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,020 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,270 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)

1 odpowiedź

0 głosów
odpowiedź 8 lutego przez MikDal Mądrala (5,000 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ź 130 wizyt
pytanie zadane 28 lipca 2018 w C# i .NET przez matmati2003 Użytkownik (590 p.)
+2 głosów
1 odpowiedź 188 wizyt
pytanie zadane 30 stycznia 2018 w C# i .NET przez Błażej Gonczar Obywatel (1,560 p.)
Porady nie od parady
Publikując kody źródłowe korzystaj ze specjalnego bloczku koloryzującego składnię (przycisk z napisem code w edytorze). Nie zapomnij o ustawieniu odpowiedniego języka z rozwijanego menu oraz czytelnym formatowaniu kodu.Przycisk code

60,258 zapytań

105,942 odpowiedzi

220,111 komentarzy

32,463 pasjonatów

Przeglądających: 346
Pasjonatów: 14 Gości: 332

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.

...