Favicon Svethardware.cz  Svět hardware   Fórum Favicon Svetaudia.cz  Svět audia Favicon TVFreak.cz  TV Freak   Fórum Favicon Digimanie.cz  Digimanie   Fórum   Galerie Společnost oXy Online s.r.o.
Zobrazené výsledky: 1 až 5 z 5

Téma: Directory.Move

  1. #1
    Občasný diskutér
    Registrace
    Jan 2006
    Příspěvků
    117

    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 :?:
    Odpovídat lze po přihlášení

  2. #2
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    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...
    Odpovídat lze po přihlášení



  3. #3
    Občasný diskutér
    Registrace
    Jan 2006
    Příspěvků
    117

    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.
    Odpovídat lze po přihlášení

  4. #4
    Starousedlík SMob
    Registrace
    Jun 2004
    Příspěvků
    9,300

    A to kopirovani jsi zkousel?
    Odpovídat lze po přihlášení

  5. #5
    Občasný diskutér
    Registrace
    Jan 2006
    Příspěvků
    117

    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).
    Odpovídat lze po přihlášení

Podobná témata

  1. Qmail a hláška "directory locked"
    Od Carpenter_ce4you v sekci Programy pro Pocket PC
    Reakcí: 1
    Poslední příspěvek: 24-01-2007, 14:17