Directory.Move
Opět zákys v Compact Framework 2
Nejlepší bude ukázat problémový kód, takže třeba:
Imports System
Imports System.IO
Public Class Form1
Dim Adresar1 As String = "\Adresar1"
Dim Adresar2 As String = "\Storage Card\Adresar2"
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
If Directory.Exists(Adresar1) = True and Directory.Exists(Adresar2) = True Then
Directory.Move(Adresar1, Adresar2)
Directory.Delete(Adresar1)
Else
Directory.CreateDirectory(Adresar1)
Directory.CreateDirectory(Adresar2)
End If
End Sub
End Class
To Move a Delete hodí hlášku:
An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll :?:
Nejlepší bude ukázat problémový kód, takže třeba:
Imports System
Imports System.IO
Public Class Form1
Dim Adresar1 As String = "\Adresar1"
Dim Adresar2 As String = "\Storage Card\Adresar2"
Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
If Directory.Exists(Adresar1) = True and Directory.Exists(Adresar2) = True Then
Directory.Move(Adresar1, Adresar2)
Directory.Delete(Adresar1)
Else
Directory.CreateDirectory(Adresar1)
Directory.CreateDirectory(Adresar2)
End If
End Sub
End Class
To Move a Delete hodí hlášku:
An unhandled exception of type 'System.IO.IOException' occurred in mscorlib.dll :?:
IOException
An attempt was made to move a directory to a different volume.
-or-
destDirName already exists.
-or-
The sourceDirName and destDirName parameters refer to the same file or directory.
Tzn. Pokud se to presouvam mezi ruznymi "disky", tak je to asi nutne nejdrive zkopirovat a pak smazat...
An attempt was made to move a directory to a different volume.
-or-
destDirName already exists.
-or-
The sourceDirName and destDirName parameters refer to the same file or directory.
Tzn. Pokud se to presouvam mezi ruznymi "disky", tak je to asi nutne nejdrive zkopirovat a pak smazat...
Jasně, hmm
Takže nemůžu nic přesunout na Storage Card, páč už existuje. V rámci root přístroje to běhá. Ale je to dost divné, jako že nejde přesunout Adresar1 z rootu do jiného adresáře na Storage Card, aby se stal jeho podadresářem.
Takže nemůžu nic přesunout na Storage Card, páč už existuje. V rámci root přístroje to běhá. Ale je to dost divné, jako že nejde přesunout Adresar1 z rootu do jiného adresáře na Storage Card, aby se stal jeho podadresářem.
Kopírování neumím :-(
Co jsem tedy postřehl :-) Directory.Delete lze použít takto:
Dim Adresar1 As String = "\Adresar1"
Dim Adresar2 As String = "\Storage Card\Adresar2"
Private Sub ......
If Directory.Exists(Adresar1) = True And Directory.Exists(Adresar2) = True Then
Directory.Delete(Adresar1)
Else
Directory.CreateDirectory(Adresar1)
Directory.CreateDirectory(Adresar2)
End If
End Sub
Pokud do Adresar1 dám podadresář test "\Adresar1\test" pak musím mazat postupně:
Directory.Delete(Adresar1 + "\test")
Directory.Delete(Adresar1)
Directory.Move mi tedy stejně tak jde pouze v rámci rootu a musí být ta složka prázdná. Tedy provede to pouze vytvoření nové složky podle parametru destDirName a smáznutí složky sourceDirName. Grrrr
Přeci pokud chci přesunout složku A se všemi podsložkami a soubory uvnitř z Bodu A do bodu B, nebudu dělat výpis celé struktury danné složky a pojednom to automatizovaně zpracovávat (i přes to že se to tak nakonec děje).
Co jsem tedy postřehl :-) Directory.Delete lze použít takto:
Dim Adresar1 As String = "\Adresar1"
Dim Adresar2 As String = "\Storage Card\Adresar2"
Private Sub ......
If Directory.Exists(Adresar1) = True And Directory.Exists(Adresar2) = True Then
Directory.Delete(Adresar1)
Else
Directory.CreateDirectory(Adresar1)
Directory.CreateDirectory(Adresar2)
End If
End Sub
Pokud do Adresar1 dám podadresář test "\Adresar1\test" pak musím mazat postupně:
Directory.Delete(Adresar1 + "\test")
Directory.Delete(Adresar1)
Directory.Move mi tedy stejně tak jde pouze v rámci rootu a musí být ta složka prázdná. Tedy provede to pouze vytvoření nové složky podle parametru destDirName a smáznutí složky sourceDirName. Grrrr
Přeci pokud chci přesunout složku A se všemi podsložkami a soubory uvnitř z Bodu A do bodu B, nebudu dělat výpis celé struktury danné složky a pojednom to automatizovaně zpracovávat (i přes to že se to tak nakonec děje).