Move folder

1

Move folder

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Zašto neće da uradi sledeće u C#-u :
Directory.Move("E:\\Temp\\C#\\PROBNI DIREKTORIJUM", "E:\\Temp\\C#\\Probni direktorijum");
Kaže ovako u debugeru:

/////////////////////////////////

System.IO.IOException was unhandled
Message="Source and destination path must be different."
Source="mscorlib"
StackTrace:
at System.IO.Directory.Move(String sourceDirName, String destDirName)
at Capitalize_Folder.Form1.button2_Click(Object sender, EventArgs e) in C:\Documents and Settings\Sale\My Documents\Visual Studio 2005\Projects\Capitalize Folder\Capitalize Folder\Form1.cs:line 43
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.Run(Form mainForm)
at Capitalize_Folder.Program.Main() in C:\Documents and Settings\Sale\My Documents\Visual Studio 2005\Projects\Capitalize Folder\Capitalize Folder\Program.cs:line 17
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()

/////////////////////////////////////////////////////////

Ipak nisu iste putanje, zar ne, trebalo bi da bude key sensitive!
Kako da ga nabudžim da rename-ujem ovako direktorijume?



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Ni FAT32 ni NTFS nisu case-sensitive, tako da je poruka iz debuggera na svom mestu.



offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Kako da ga rename-ujem?

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

Nikako, posto ovo nije pravi rename jer je ime foldera isto.
Ukoliko ti je bas bitna velicin slova, onda uradi jedan move u neki temp, pa onda taj temp preimenuj kako ti volja.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Pa mora da postoji rename komanda, ti u gornjoj komandi pokusavas da premestis "E:\\Temp\\C#\\PROBNI DIREKTORIJUM" u njega samog tj. u "E:\\Temp\\C#\\PROBNI DIREKTORIJUM" sto slozices se, nikako ne moze da prodje.

offline
  • Pridružio: 04 Sep 2003
  • Poruke: 24135
  • Gde živiš: Wien

@Bone
Ako sam dobro shvatio, on zeli da promeni 'case' slova.
Problem je sto filesistem ni je case-sensitive, tako da ovaj kod gore nije Rename.

Directory.Move jeste naredba kojom se radi rename, i sintaksa gore je OK, ali to ovde nije moguce iz vec spomenutih razloga.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Znam da on zeli da promeni case ali to sam ja radio bez problema iz VC++ 6 (i na FAT32 i na NTFS) tako da ne vidim razlog zasto i ovde ne bi bilo moguce, cudno mi je da se rename radi sa komandom Move...

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 8134
  • Gde živiš: U kesici gumenih bombona...

Bas zato sto se rename radi sa move, zato i ne moze da promeni naziv fodera na taj nacin.

Gledao sam u MSDN, uopste nema rename za Direcory. Move radi i move i rename.

Jedino da obrise folder i kreira novi sa istim imenom, samo sa promenjenim case-ingom.

offline
  • Pridružio: 18 Apr 2003
  • Poruke: 5001
  • Gde živiš: Beograd

Pa ne mora da ga brise, moze da ga renameuje dva puta, prvi put u temp$$$$$.tmp i drugi put u pravi naziv koji zeli.

Dopuna: 11 Jul 2006 15:56

Stim sto ako postoji jako mnogo fajlova unutar foldera, dugo ce mu trajati to.

offline
  • Pridružio: 01 Apr 2005
  • Poruke: 797
  • Gde živiš: Niš

Kako loše, a za fajlove radi bez problema.

Ko je trenutno na forumu
 

Ukupno su 984 korisnika na forumu :: 36 registrovanih, 3 sakrivenih i 945 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: 357magnum, Aleksandar Tomić, Bloody, bojanM84, Bubimir, cavatina, DeerHunter, Djokkinen, Dorcolac, Dovla, drimer, esx66, FOX, Georgius, ILGromovnikM2, koom0001, ladro, ljuba, maiden6657, MB120mm, Metanoja, micoboj, milenko crazy north, mnn2, moldway, naki011, nikoladim, novator, samsung, sap, SD izvidjac, Stoilkovic, Tas011, vathra, Zoca, 79693