Avatar billede thomaxz Nybegynder
15. august 2007 - 11:04 Der er 9 kommentarer og
1 løsning

Mærklig fejl ved kopiering

string sysdrive;
            string fil;
            string bfil;

            sysdrive = Environment.ExpandEnvironmentVariables("%SystemDrive%");
            fil=sysdrive.Trim()+"\boot.ini";
           
            bfil=fil+".bak";

            //fil = fil.Replace("\\", "\\\\");
            //bfil = bfil.Replace("\\", "\\\\");
            //har prøvet at skife \ til \\

            System.IO.File.Copy(fil, bfil);

Når jeg bruge flg. overstående kode for jeg flg. fejl

Illegal characters in path

har prøvet at skifte enkel \ til dobbelt \\ for at se om de blev escaped ned til \ inde i copy men få samme fejl

men hardcodde jeg stien

System.IO.File.Copy("c:\\boot.ini", "c:\\boot.ini.bak");

er der igen problemer
Avatar billede kalp Novice
15. august 2007 - 11:07 #1
prøv med

System.IO.File.Copy(@"c:\boot.ini", @"c:\boot.ini.bak");

som du lige skriver om til ikke at være hardcoded.
Avatar billede kalp Novice
15. august 2007 - 11:08 #2
System.IO.File.Copy(@+string.Empty+fil, @+string.Empty+bfil);

er vel nok sådan.. men du skal da prøve at udskrive fil og bfil for at se hvordan stien ser ud ellers.
Avatar billede spif2001 Nybegynder
15. august 2007 - 11:10 #3
Er det ikke bare at undlade backslash i denne her linie:

fil=sysdrive.Trim()+"\boot.ini";

bliver til

fil=sysdrive.Trim()+"boot.ini";
Avatar billede thomaxz Nybegynder
15. august 2007 - 11:19 #4
spif2001 metode virke, men ret ulogiks da den udskrevet sti bliver

C:boot.ini
C:boot.ini.bak

men fandt en anden metode

fil=sysdrive.Trim()+"\boot.ini";

bliver til

fil=sysdrive.Trim()+"\\boot.ini";

så bliver stiene der udskrive

C:\boot.ini
C:\boot.ini.bak

men det er nøjagti de samme stie som visual studio viste i vinude locals, men de stiende blev udskrevet blev \ til en firkant.
Avatar billede spif2001 Nybegynder
15. august 2007 - 11:34 #5
Ah well - så længe det virker ;)
Avatar billede nielle Nybegynder
15. august 2007 - 14:38 #6
fil = Path.Combine(sysdrive.Trim(), "boot.ini");
Avatar billede nielle Nybegynder
15. august 2007 - 14:55 #7
DirectoryInfo sysRoot = new DirectoryInfo(Environment.SystemDirectory).Root;
fil = Path.Combine(sysRoot.Name, "boot.ini");
Avatar billede thomaxz Nybegynder
17. august 2007 - 09:17 #8
læg et svar hvis i vil have point.
Avatar billede spif2001 Nybegynder
17. august 2007 - 09:25 #9
Jeg er stoppet med point jagten. Kommer forbi for sjældent... ;)
Avatar billede nielle Nybegynder
20. august 2007 - 18:10 #10
Ingen point til mig på denne her. :^)
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

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