IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Déplacer un fichier


Sujet :

Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 43
    Points : 42
    Points
    42
    Par défaut Déplacer un fichier
    Bonjour,

    J'essaye de deplacer un fichier avec la methode renameTo() mais ca ne marche pas... je sais pas pourquoi

    Si quelqu'un a deja essayé et a une solution !

    Le logcat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    06-03 15:32:17.800: E/dirPath(7069): /mnt/sdcard/Dir
    06-03 15:32:17.800: E/filePath(7069): /54_2013-06-03_15:32.mp4
    06-03 15:32:17.835: E/oldPath(7069): /mnt/sdcard/DCIM/Camera/VID_20130513_143336.mp4
    06-03 15:32:17.922: E/VideoMover(7069): move
    06-03 15:32:17.922: E/VideoMover(7069): failed
    Le code (avec tout les logs pour savoir pourquoi ca veut pas x))

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    import android.os.Environment;
    import android.util.Log;
     
    import java.io.File;
     
    public class VideoMover implements Runnable {
        private File _dirPath;
        private String _filePath;
        private String _oldPath;
        private boolean _isSuccess;
     
        public VideoMover(String path, int vitesse, String date)
        {
            this._dirPath = new File(Environment.getExternalStorageDirectory(), "/Dir/");
            if (!this._dirPath.exists()) {
                Log.e("Dir", "doesn't exist");
                this._dirPath.mkdir();
            }
            if (!this._dirPath.canWrite()) {
                Log.e("Dir", "can't write");
            }
            this._filePath =  "/" + String.valueOf(vitesse) + "_" + date.replace(' ', '_') + ".mp4";
            this._oldPath = path;
            Log.e("dirPath", this._dirPath.getPath());
            Log.e("filePath", this._filePath);
            Log.e("oldPath", this._oldPath);
        }
     
        @Override
        public void run() {
            Log.e("VideoMover", "move");
            File move = new File(this._oldPath);
            if (!move.canRead()) {
                Log.e("move", "can't read");
            }
            if (!move.exists()) {
                Log.e("move", "doesn't exist");
            }
            this._isSuccess = move.renameTo(new File(this._dirPath, this._filePath));
            if (_isSuccess) {
                Log.e("VideoMover", "success");
            }
            else
                Log.e("VideoMover", "failed");
        }
    }
    Merci d'avance !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    As-tu ajouté les permissions d'écriture à ton fichier Manifest ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    Oui oui !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Toutes les conditions décrites ici sont-elles remplies ?
    Le fait est que tu essaie de déplacer un fichier mais sans regarder si le nouveau PATH existe/est accessible. L'erreur vient peut être de là ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    Search permission is required for all parents of both paths.

    C'est quoi exactement le "search" ?

    Bah le nouveau Path peut pas exister si le rename marche pas ?
    Ou faut crée un fichier du meme nom que mon nouveau path ?
    Je test juste si le dossier dans lequel je veux mettre la video exist et est writable !

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Le constructeur File() que tu utilises prends deux chaines de caractère en paramètres, le premier étant le PATH, et le deuxième le nom du fichier.
    Or là, apparemment, tu utilises aussi un path pour le deuxième argument...

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    new File(this._dirPath, this._filePath);
    J'ai bien File(File, String)

    Edit: dirPath = /mnt/sdcard/TennisRadar
    filePath = /49_2013-06-04_10:01.mp4

    Je vais essayé en enlevant le '/' au nom du fichier

    Ou bien du parle pour l'ouverture de mon dirPath ?
    Jvais essayer les 2 !

    Edit: Bon j'ai tout essayé ca change pas,
    Meme en essayant la methode createFile
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     File newFile = new File(this._dirPath.getPath()+ this._filePath);
            if (!newFile.exists()) {
                try {
                    newFile.setWritable(true);
                    newFile.createNewFile();
                } catch (IOException e) {
                    Log.e("create", this._dirPath.getPath()+ this._filePath);
                    e.printStackTrace();
                }
    J'ai une Exception...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    06-04 10:23:32.008: W/System.err(11308): java.io.IOException: open failed: EINVAL (Invalid argument)

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 43
    Points : 42
    Points
    42
    Par défaut
    Par un soudain eclair de génie j'ai trouvé...

    Jme suis rappelé que le caratere ':' etait pas autorisé... =x

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Il doit normalement existe une méthode "toute faite" pour parser un PATH et cela t'évites de le faire à la main (comme enlever les espaces, les accents, etc).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. déplacer un fichier....
    Par kayn dans le forum Langage
    Réponses: 3
    Dernier message: 05/10/2005, 16h17
  2. Déplacer un fichier dans un autre répertoire
    Par t_om84 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2005, 09h36
  3. Déplacer un fichier
    Par valerie90 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 23/09/2004, 11h37
  4. :?: Dialogue explorer pour copier/déplacer un fichier
    Par Don Quiche dans le forum Windows
    Réponses: 5
    Dernier message: 09/07/2004, 18h49
  5. déplacer un fichier
    Par bourinator dans le forum C
    Réponses: 9
    Dernier message: 24/09/2003, 20h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo