kreatortd Opublikowano 19 Sierpnia 2005 Zgłoś Opublikowano 19 Sierpnia 2005 Ten "pseudo program" ma za zadanie usowac plik Temp..ale nie robi tego..moze ktos mi powiedziec dlaczego i ewentualnie co zrobic zeby zaczal dzialac poprawnie ?? #include <iostream>#include <dir.h>#include <conio.h>using namespace std;int rmdir(const char *path);main(){ cout << " Czy jestes pewnien ze chcesz usunac zawartosc " "katalogu Temp ?[c:\\windows\\temp]" << endl; char pytanie; cin >> pytanie; if ( (pytanie == 'T') | ( pytanie == 't') ) rmdir("C:\\WINDOWS\\Temp"); else exit(1); getch(); } Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Gość BarTweak Opublikowano 19 Sierpnia 2005 Zgłoś Opublikowano 19 Sierpnia 2005 spróbuj może "C:\Windows\Temp" A jak nie to int main () Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 (edytowane) spróbuj może "C:\Windows\Temp" A jak nie to int main () 1602997[/snapback] "C:\Windows\Temp" ->> tak ne moze byc napisane..bo zawsze po slashu kompilator spodziewa sie jakiegos znaku , litery itp ... Ale program sie kompiluje wiec po co pisac int main () ?? Program tylko nie usowa katalogu Temp i wlasnie w tym caly broblem..dlaczego on tego nie robi skoro funkcja rmdir powinno go usunac :mur: Edytowane 20 Sierpnia 2005 przez kreatortd Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
antrykot111 Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 Chyba chodzi o to, że ta funkcja wymaga, aby folder był pusty :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 Chyba chodzi o to, że ta funkcja wymaga, aby folder był pusty :) 1603974[/snapback] Nawet jesli jest pusty to i tak nic sie z nim nie dzieje .. :blink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
FooKy Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 Witam Czy z jakiegoś konkretnego powodu musisz używać Cpp? Dla windowsa jest VBscript. Ponizej zamieszczam skrypt kasujacy katalog nie zależnie od tego czy jest on pusty czy pełny. OPTION EXPLICITON ERROR RESUME NEXTdim fsodim errDescdim pathpath = "C:\Temp"set fso=createObject("Scripting.FileSystemObject")fso.DeleteFolder path, true ' Wynik kasowaniaselect case hex(err.number) case 4C errDesc=" Nie ma takiego katalogu" case 46 errDesc=" plik zajety" case 0 errDesc=" ok." case else errDesc=cstr(hex(err.number))end selectwscript.echo "Kasowanie " & path & " : " &errDesc ' zwolnienie zasobowset fso=nothing Best Regards Michał J. / FooKy PS. Dla niewtajemniczonych aby uruchomić VBS należy zapisać skrypt jako nazwa.vbs Nastepnie uruchomic poleceniem cscript nazwa.vbs (uruchomi skrypt w trybie konsoli) lub wscript nazwa.vbs (wszystkie komunikaty beda pojawiały sie w postaci popup'ów) ewentualnie kliknac dwukrotnie na ikonke pliku. :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
antrykot111 Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 Albo możesz użyć funkcji z winapi BOOL RemoveDirectory( LPCTSTR lpPathName // address of directory to remove ); Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 Witam Czy z jakiegoś konkretnego powodu musisz używać Cpp? Dla windowsa jest VBscript. Ponizej zamieszczam skrypt kasujacy katalog nie zależnie od tego czy jest on pusty czy pełny. OPTION EXPLICITON ERROR RESUME NEXTdim fsodim errDescdim pathpath = "C:\Temp"set fso=createObject("Scripting.FileSystemObject")fso.DeleteFolder path, true ' Wynik kasowaniaselect case hex(err.number) case 4C errDesc=" Nie ma takiego katalogu" case 46 errDesc=" plik zajety" case 0 errDesc=" ok." case else errDesc=cstr(hex(err.number))end selectwscript.echo "Kasowanie " & path & " : " &errDesc ' zwolnienie zasobowset fso=nothing Best Regards Michał J. / FooKy PS. Dla niewtajemniczonych aby uruchomić VBS należy zapisać skrypt jako nazwa.vbs Nastepnie uruchomic poleceniem cscript nazwa.vbs (uruchomi skrypt w trybie konsoli) lub wscript nazwa.vbs (wszystkie komunikaty beda pojawiały sie w postaci popup'ów) ewentualnie kliknac dwukrotnie na ikonke pliku. :wink: 1604184[/snapback] Owszem , chce uzyc cpp bo nie znam innego jezyka programowanie , moze niedlugo zabiore sie za jave i assemblera ale najpierw poznam lepiej c++ . Albo możesz użyć funkcji z winapi BOOL RemoveDirectory( LPCTSTR lpPathName // address of directory to remove ); 1604271[/snapback] A co to win32api to jak mam uzyc tej funkcji :blink: :blink: ???? Jesli mozesz antrykot111 to podaj jakis krotki przyklad z uzyciem tej wlasnie "funkcji" .. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
antrykot111 Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 WinAPI to w skrócie wszystkie funkcje obsługujące window'sa, czyli okienk i te sprawy :wink: A co do tej funkcji to coś takiego powinno działać : #include <windows.h>int main(){RemoveDirectory("C:\\a");return 0;} Z tym że katalog też musi być pusty. A jeśli by nie działało, to spróbuj na jakimś innym katalogu. I sprawdz co zwraca ta funkcja, powinno być różne od 0 jeśli sie powiedzie :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 WinAPI to w skrócie wszystkie funkcje obsługujące window'sa, czyli okienk i te sprawy :wink: A co do tej funkcji to coś takiego powinno działać : #include <windows.h>int main(){RemoveDirectory("C:\\a");return 0;} Z tym że katalog też musi być pusty. A jeśli by nie działało, to spróbuj na jakimś innym katalogu. I sprawdz co zwraca ta funkcja, powinno być różne od 0 jeśli sie powiedzie :) 1604470[/snapback] No i w tym caly problem..chodzi mi o to ze katalog nie ma byc pusty ..i ma byc usowany zawsze (czy jest pusty czy nie) .. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
S82 Opublikowano 20 Sierpnia 2005 Zgłoś Opublikowano 20 Sierpnia 2005 #include <iostream>using namespace std;void main(void){ system("del /F /S c:\\nazwa_folderu"); system("rmdir c:\\nazwa_folderu"); system("pause");} Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 #include <iostream>using namespace std;void main(void){ system("del /F /S c:\\nazwa_folderu"); system("rmdir c:\\nazwa_folderu"); system("pause");} 1604564[/snapback] No teraz wszystko dziala poprawnie..a tak BTW co oznaczaja litery : /F /S ?? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
S82 Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 dla del /F - Wymusza usuwanie plików z atrybutem tylko do odczytu. /S - Usuwa określone pliki ze wszystkich podkatalogów. Program można nawet skrócić do takiej postaci void main(void){ system("rmdir /S c:\\nazwa_folderu"); system("pause");}dla rmdir /S - Usuwa wraz z określonym katalogiem wszystkie katalogi i pliki w nim umieszczone. Stosuje się do usuwania drzewa katalogów. Uruchom wiersz poleceń i wpisz help wybierz sobie interesujące Cię polecenie np RD i dodaj na końcu /? a otrzymasz niezbędne informacje na ten temat. Praktycznie do tego problemu nie opłaca się robić programu wystarczy stworzyć plik wsadowy bat i umieścić go w autostart bo pewnie chodzi o to żeby folder był czyszczony co restart systemu :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Sid Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 Etam, ktoś powie że mam konserwatywne poglądy czy cuś ale nie lubie w programach funkcji system(), exec() itp ;) Bo równie dobrze w takim wypadku można zrobić plik wsadowy .bat ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
S82 Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 Ma działać a nie wyglądać :lol: :wink: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Sid Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 Ma działać a nie wyglądać :lol: :wink: 1605296[/snapback] No niby tak, ale nie widze sensu nazywania tego "programem" ;) A jakby nie było użytych programow w systemie? ;) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
S82 Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 No tak dwie linijki kodu trudno nazwać programem zwłaszcza że lepiej zrobić plik wsadowy nie trzeba kompilować i zajmuje znacznie mniej miejsca z drugiej strony tworzenie stu lub więcej lini kodu ażeby nie korzystać z system() jest stratą czasu zwłaszcza że oba rozwiązania prowadzą do jednego. A jakby nie było użytych programów w systemie?Te polecenia są częścią systemu Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
kreatortd Opublikowano 21 Sierpnia 2005 Zgłoś Opublikowano 21 Sierpnia 2005 O co chodzi wogole z tymiplikami wsadowymi *.bat ?? Moze mi to ktos łaskawie wyjasnic ?? :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
FooKy Opublikowano 22 Sierpnia 2005 Zgłoś Opublikowano 22 Sierpnia 2005 Witam Piszesz zwykly plik textowy w którym pokolei podajesz komendy jak na konsoli bys to robil. Potem zmieniasz jego rozszerzenie na .bat i juz masz gotowy plik wykonywalny np: mkdir acd aecho ala > ala.txtcd ..rmdir /s /q a taki text w pliku test.bat spowoduje utworzenie katalogu potem przejscie do niego utworzenie pliku ala.txt ze slowem ala wyjscie katalog wyzej usuniecie katalogu wraz ze wszystkimi plikami (/q zapobiega pytaniu o potwierdzenie) Best Regards Michał J. / FooKy Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
duh85 Opublikowano 7 Stycznia 2009 Zgłoś Opublikowano 7 Stycznia 2009 #include<stdio.h>#include<conio.h>main(){system("rmdir /S c:\downloads");} Wywala mi bład: C:\NONAME01.EXE Nieprawidłowy przełącznik - /S Przy recznym wklepaniu w konsole jest dobrze. Wie ktos co moze bys przyczyna? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
PelzaK Opublikowano 7 Stycznia 2009 Zgłoś Opublikowano 7 Stycznia 2009 będę strzelał: spróbuj "rmdir \/S c:\\downloads" Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...