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

Jak przenieść folder?

–1 głos
597 wizyt
pytanie zadane 12 lipca 2016 w C i C++ przez Mariusz111 Nowicjusz (190 p.)
Używam C++ Buildera, mam przycisk oraz 2 pola tekstowe. Chce aby w pierwszym polu tekstowym wprowadzano lokacje folderu do przeniesienia a w drugim polu tekstowym lokacje do której ma zostać folder przeniesiony wszystko ma być aktywowane przyciskiem, jak to zrobić?

4 odpowiedzi

+1 głos
odpowiedź 14 lipca 2016 przez maly Nałogowiec (37,190 p.)
wybrane 14 lipca 2016 przez Mariusz111
 
Najlepsza

Możesz użyć funkcję SHFileOperation.

int CopyDirectory(AnsiString From, AnsiString To, bool Move)
{
	From = IncludeTrailingPathDelimiter(From) + "*";

	SHFILEOPSTRUCT shfileopstruct;
	ZeroMemory(&shfileopstruct, sizeof(shfileopstruct));

	shfileopstruct.wFunc = Move?FO_MOVE:FO_COPY;
	shfileopstruct.pFrom = From.c_str();
	shfileopstruct.pTo = To.c_str();
	shfileopstruct.fFlags = FOF_NOCONFIRMMKDIR;

	return SHFileOperation(&shfileopstruct);
}
// Jeśli Move ustawione bedzie na true to przeniesie cala zawartosc folderu, jesli na false to skopiuje
CopyDirectory("D:\\Source\\Path", "C:\\Dest\\Path", false);

 

+1 głos
odpowiedź 12 lipca 2016 przez obl Maniak (51,300 p.)

Do realizacji samego przenoszenia folderu możesz wykorzystać funkcję rename, która została opisana tutaj. Z resztą ci nie pomogę bo nie korzystam z Buildera.

komentarz 12 lipca 2016 przez Mariusz111 Nowicjusz (190 p.)

Jeśli zrobie tak to będzie dobrze?

 

 

void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{ 

int result;
  char oldname[] ="Edit1(nazwa pola tekstowego)";
  char newname[] ="Edit2(nazwa pola tekstowego)";
  result= rename( oldname , newname );
}

 

komentarz 13 lipca 2016 przez obl Maniak (51,300 p.)
rename(Edit1->Text.c_str(),Edit2->Text.c_str());

Tekst z pierwszego edita może być np taki:

C:\Folder1

A z drugiego:

C:\Jakiś folder\Folder1

Wtedy przeniesie ci Folder1 z C na C:\Jakiś folder

komentarz 13 lipca 2016 przez Mariusz111 Nowicjusz (190 p.)
Da się foldery przenosić pomiędzy partycjami?
komentarz 13 lipca 2016 przez obl Maniak (51,300 p.)

Jestem trochę zaskoczony, ale niestety, ta funkcja jak również funkcja MoveFile nie umożliwia przenoszenie folderu z plikami pomiędzy partycjami.

+1 głos
odpowiedź 12 lipca 2016 przez jeremus Maniak (59,720 p.)
  MoveFile(Edit1->Text.c_str(),Edit2->Text.c_str());

musisz podać  nazwę docelową folderu  - a nie tylko lokalizację

np. c:\folder1 chcesz przenieść do np. c:\nowa_lokalizacja 

to Edit1->Text="c:\Folder1"

Edit2->Text="c:\Nowa_lokalizacja\Folder1"

komentarz 13 lipca 2016 przez Mariusz111 Nowicjusz (190 p.)
To działa, ale z plikami, nie moge przenieść folderu, jak to zrobic?
komentarz 13 lipca 2016 przez jeremus Maniak (59,720 p.)
tak jak podałem w przykładzie  przenosi folder wraz z plikami
0 głosów
odpowiedź 2 września 2019 przez fff Gaduła (4,000 p.)

 

możesz użyć CopyFile("x","y", false)

x-pierwsza lokalizacja

Y-lokalizacja końcowa

lecz najpierw utwórz zmienne i prześlij do nich dane
 

Podobne pytania

–3 głosów
1 odpowiedź 663 wizyt
0 głosów
1 odpowiedź 221 wizyt
pytanie zadane 4 listopada 2016 w C i C++ przez Maniutek Użytkownik (520 p.)
0 głosów
1 odpowiedź 245 wizyt

93,599 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,082 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...