bonjour,
voila je suis entrain de coder un programme pour ranger mais musique et supprimer les doublons mais j'ai un problème voila le code :
Type.h
identifiertype.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifndef TYPE_H #define TYPE_H #include <QString> const int ALL = 0; //tout les types const int MP3 = 1; //fichier MP3 const QString sMP3 = "audio/mpeg"; #endif //fin TYPE_H
identifiertype.cpp
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 #ifndef IDENTIFIERTYPE_H #define IDENTIFIERTYPE_H #include <QString> #include <QStringList> #include <magic.h> class IdentifierType{ public: /* Constructeur QString Repertoire ou les types doivent étre identifier */ IdentifierType(const QString& ); ~IdentifierType(); /* int type de fichier a trouvé (voir Type.h) QStringList list des fichier trouvé (chemin absolut) */ QStringList find(int); void setDirectory(QString); QString Directory(); private: QStringList find(QString); QString directory; QStringList file; magic_t cookie; }; #endif
main.cpp
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83 #include <QDir> #include <magic.h> #include "identifiertype.h" #include "Type.h" IdentifierType::IdentifierType(const QString &dir) : directory(dir) { cookie = magic_open(MAGIC_MIME_TYPE); magic_load(cookie, "/usr/share/file/magic"); QDir dirInfo(directory); file = dirInfo.entryList();//liste des fichier dans directory QString::const_iterator sIt = directory.constEnd(); if(*(sIt) != '/') directory += "/"; } IdentifierType::~IdentifierType() { magic_close(cookie); } QStringList IdentifierType::find(int id) { QStringList list; switch(id) { case MP3: list = find(sMP3); break; case ALL: list = find(QString()); break; } return list; } QStringList IdentifierType::find(QString filter) { QString searchFile; QString mime_type; QStringList list; int i = 0; for(QStringList::const_iterator cIt = file.constBegin(); cIt == file.constEnd(); cIt++) { qDebug(cIt->toStdString().c_str()); if(!filter.isEmpty()) { searchFile = directory + *cIt; mime_type = magic_file( cookie, searchFile.toStdString().c_str() ); if(filter == mime_type) list[i] = searchFile; } else list[i] = directory + *cIt; i++; } return list; } void IdentifierType::setDirectory(QString dir) { directory = dir; } QString IdentifierType::Directory() { return directory; }
Sortie :
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 #include <QCoreApplication> #include <QDataStream> #include "identifiertype.h" #include "Type.h" int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); qDebug("Hello from OrganizeMuzic"); IdentifierType identify("/opt/Music"); QString msg = identify.Directory(); qDebug(msg.toStdString().c_str()); QStringList listMP3 = identify.find(MP3); QDataStream out; out << listMP3; char *clistMP3; out >> clistMP3; qDebug(clistMP3); return 0; }
et le problème c'est que identify.find(MP3) devrait renvoyé la liste des *.mp3 dans le fichier Music et pas le deuxième /opt/Music
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 prsieux@debian:/opt/src/OrganizeMusic/bin$ ./organizemusic Hello from OrganizeMuzic /opt/Music/ /opt/Music/
J'ai regardé ac un debbeugeur et ce que je peut dire c'est que après :
Code : C++
file est toujours vide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 //ligne 35 de identifiertype.cpp QDir dirInfo(directory); file = dirInfo.entryList();//liste des fichier dans directory
voici le ls du dit fichier
Merci aurevoir
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 prsieux@debian:~$ ls /opt/Music/ -l total 3292 drwxr-xr-x 2 prsieux prsieux 4096 août 8 13:05 0-Led Zeppelin - Mothership (disc 1) -rw-r--r-- 1 prsieux prsieux 3306144 avril 3 19:26 Children Of Bodom - Bed of Razors.mp3 drwxr-xr-x 2 prsieux prsieux 4096 janv. 1 2000 Dio -distraught overlord- - Heaven's Call drwxr-xr-x 2 prsieux prsieux 4096 août 14 20:32 kalmah drwxr-xr-x 2 prsieux prsieux 4096 juil. 26 14:23 Led Zeppelin - Mothership (disc 2)1 drwxr-xr-x 8 prsieux prsieux 4096 juil. 12 00:28 m4a drwxr-xr-x 14 prsieux prsieux 4096 août 26 2007 Maximum The Hormone drwxr-xr-x 2 prsieux prsieux 4096 sept. 3 19:00 Mors Principium Est - The Unborn - 2005 drwxr-xr-x 22 prsieux prsieux 4096 sept. 2 17:45 mp3 drwxr-xr-x 2 prsieux prsieux 4096 août 28 22:07 Norma Jean - The Anti-Mother (2008) drwxr-xr-x 2 prsieux prsieux 4096 août 25 22:37 Norther drwxr-xr-x 10 prsieux prsieux 4096 juil. 12 00:27 ogg drwxr-xr-x 8 prsieux prsieux 4096 sept. 2 20:00 underOATH drwxr-xr-x 2 prsieux prsieux 4096 juil. 12 00:19 wav drwxr-xr-x 10 prsieux prsieux 4096 juil. 12 00:33 wma
Partager