Avatar billede o-zone Nybegynder
15. januar 2007 - 17:33 Der er 5 kommentarer og
1 løsning

kan jeg ændre det aktive directory på en process?

Hej med jer...

Det her er et følgespørgsmål til http://www.eksperten.dk/spm/755948, men det er et nyt problem, så jeg vil gerne give nye points.

Jeg har hentet en gz.exe og en tar.exe, og fået dem til at pakke tar filer ud for mig ved at lave en:
Process.Start("gzip", "-d minPakke.tar.gz");
Process.Start("tar, "-xmf minPakke.tar");

Desværre så pakker tar alle filerne ud i det aktive directory (altså dér hvor jeg nu kører mit program fra)

Det er jeg på ingen måde interesseret i. Jeg har prøvet at tilføje "--directory=MinPath" på et utal af forskellige måder, men i bedste fald er tar ophøjet ligeglad med det.

Det er muligt at det er porteringen af tar der er noget galt med - jeg ved det ikke.

Nu kan jeg så forestille mig 4 løsninger af (stærkt) dalende kvalitet:
1) Jeg får syntaksen på tar.exe (eller den version af programmet jeg har fundet?) til at fungere korrekt med angivelse af output directory
2) Jeg får angivet et andet aktivt directory på den process jeg starter op med Process.Start
3) Jeg skifter midlertidigt aktivt directory på mit program, før jeg starter tar op, og skifter tilbage igen bagefter
4) Jeg arbejder i mit programs aktive directory (og flytter eventuelt filer efter de er udpakket)

Hvis jeg ikke får løsning 1 op at køre, så får jeg brug for at kunne manipulere med aktive directories - er der nogen af jer der ved hvordan jeg kan gøre det?
Allerhelst så jeg kan nøjes med at angive et directory i den process jeg starter med tar, men ellers så jeg kan gøre som i løsning 3
Avatar billede kalp Novice
15. januar 2007 - 17:42 #1
kan du ikke først oprette en mappe og åbne den så det er aktiv?
og herefter køre din udpakning?

using System;
using System.IO;

Directory.CreateDirectory(@"c:\minfolder")
Process.Start (@"c:\minfolder");
Process.Start("gzip", "-d minPakke.tar.gz");
Process.Start("tar, "-xmf minPakke.tar");
Avatar billede arne_v Ekspert
15. januar 2007 - 17:46 #2
hvis det er en rigtigt GNU TAR du har bør du kunne angive en

--directory=detdirduvilbruge

på kommando linien til TAR
Avatar billede arne_v Ekspert
15. januar 2007 - 17:48 #3
ellers brug

Directory.SetCurrentDirectory

(men husk at sætte tilbage igen)
Avatar billede o-zone Nybegynder
15. januar 2007 - 18:21 #4
kalp> nej, det virker ikke (men tak for forsøget)

arne_v#1> jeg ved ikke om det er den korrekte tar jeg har fundet. Der står i hjælpen at det burde fungere med --directory, men det gør det bare ikke. Hvis du har et link til en tar.exe hvor det virker, må du meget gerne poste det her. Den tar.exe jeg har fundet fylder 167.936, og den ser umiddelbart genuine ud. Man bliver bedt om at rapportere bugs til tar-bugs@gnu.ai.mit.edu (så det vil jeg overveje at gøre :-) )

arne_v#2> Det virker peachy! :D ... du er en skat på to ben! ... Jeg synes ellers at jeg havde kikket Directory klassen ud, men jeg må jo have overset den metode! :-D Smid et svar - du har fortjent alle points!
Avatar billede arne_v Ekspert
15. januar 2007 - 18:26 #5
det er den rigtige GNU TAR så, men der er sikkert et eller andet skummelt med
Windows versus Unix directory navns syntax - jeg har aldrig selv brugt den
option - jeg fandt den bare med --help

svar for den anden
Avatar billede o-zone Nybegynder
15. januar 2007 - 21:44 #6
Jeg tipper også at det er et eller andet der er gået galt i porteringen af tar til windows. Jeg vil overveje kraftigt at sende dem en bug-report :)

Du skal i hvert fald have tak for hjælpen til det med at skifte det aktive directory! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester