IFileOperation Interface - jak to ugryźć?

0

Chcę skopiować wiele plików, korzystając z systemowego CopyFilesDialog. Dowiedziałem się że mogę użyć IFileOperation Interface, problem w tym, że nie rozumiem tej odpowiedzi. Jak mogę robić operacje na plikach interfejsem? Przecież interfejs nie ma żadnego kodu 'wykonywalnego'. O co tu chodzi i jak z tego skorzystać?

0

próbowałeś na googlach wpisać: C# ifileoperation? wydaje mi się, że w pierwszym z góry linku jest to z przykładem wyjaśnione

0

Owszem, ale dalej tego nie rozumiem. Koleś stworzył klasę FileOperation, która zawiera obiekt IFileOperation _fileOperation i po prostu go używa: _fileOperation.CopyItem(sourceItem.Item, destinationItem.Item, newName, null); w tej klasie. Pytanie co on do niego przypisze? Sam przecież nie zadziała.
W kodzie każe używać czegoś takiego:

using(FileOperation fileOp = new FileOperation())
{
    fileOp.CopyItem(@"C:\test\test1.txt", @"C:\test", @"copy.txt");
    fileOp.DeleteItem(@"C:\test\test2.txt");
    fileOp.MoveItem(@"C:\test\SampleDir", @"C:\test", @"NewDir");
    fileOp.PerformOperations();
}

A ja znowu pytam co jest tym elementem, które dziedziczy po IFileOperation i wykonuje operacje? I dlaczego niby stworzenie obiektu klasy FileOperation mało by działać, bez przypisania wartości dla IFileOperation _fileOperation - tak jak w przykładzie. Nie rozumiem, dlatego proszę o pomoc.

0

W kod już się wpatruję dość długo. Mam wpisać w googlu interfejs 'Nie netowy'? Zlituj się i podpowiedz o co tu chodzi. Nie jestem doświadczony w programowaniu, szczególnie w kwestiach korzystania czegoś co nie należy do .Neta, litości :).

1

Klasą Activator autor tworzy instancję obiektu COM. Odpowiednik CoCreateInstance.

Jest sobie technologia COM, dzięki której można stworzyć API, z którego będzie można skorzystać w całym systemie. Generalnie sprawa polega na tym, że CoCreateInstance (a raczej kolejne funkcje, które ona wywołuje) sprawdza sobie w rejestrze GUID, który jej podałeś. W rejestrze do GUID przypisana jest ścieżka do biblioteki, w której znajduje się implementacja. Następnie wyciągana jest z niej fabryka, która zarządza obiektem - tworzy go i zwraca ci wskaźnik do nowego obiektu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1