本文整理汇总了C++中DirectoryEntry::setName方法的典型用法代码示例。如果您正苦于以下问题:C++ DirectoryEntry::setName方法的具体用法?C++ DirectoryEntry::setName怎么用?C++ DirectoryEntry::setName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DirectoryEntry
的用法示例。
在下文中一共展示了DirectoryEntry::setName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
template <class T> void DAT::AddInDirectory(std::vector<TriageFile> Triage,const unsigned int profondeur,FILE* DatFile,const char* name,T me) //ajouter dans un nouveau dossier
{
for (unsigned int i=0;i< profondeur;++i)
cout<<'\t';
cout<<"Ajout du répertoir :"<<name<<endl;
/// Triage est un vecteur contenant les chemin des fichier à inclure qui sont obligatoirement dans le repertoire qui les traite
fseek(DatFile,0,SEEK_END);
const long int SeekCurrentDir=ftell(DatFile);//on enregistre la position du curseur dans le fichier où est mise la structure du dossier
fwrite((char*)&me,1,sizeof(T),DatFile);//on met le dossier courant dans le fichier
CurrentOffset=ftell(DatFile); //adresse acctuelle dans la mémoire
unsigned int _size=Triage.size();
vector<unsigned int> index;
bool sous_dossier=false;
for(unsigned int i=0;i<_size && !sous_dossier;++i) //pour tous les fichiers on cherche ceux à ajouter
if(Triage[i].Path.size()==profondeur)//si c'est un fichier à ajouter
{
if (me.Nb<NOMBRE_OF_FILE)
{
me.Nb++;
index.push_back(i);
}
else
sous_dossier=true;
}
///on a donc tous les fichiers à ajouter, et si nesésaire, dans un dossier de suite
_size=0; //difference dans index
for (unsigned int i=0;i<me.Nb;++i) //pour tous les fichier à ajouter
{
//on va chercher le fichier
int id=index[i]-_size;
if(EcrireFichier(DatFile,&me,i,id,&Triage)) //on ecrit le fichier
++_size;
else
exit(0);
}
ResetMe(DatFile,&me,SeekCurrentDir); //on reecrit les info sur le dossier
if (sous_dossier)//si sous_dossier, envoyer le vecteur.
DeleguerDossier(Triage,profondeur,DatFile,name,&me,SeekCurrentDir);
else if (Triage.size()>0)//on à écrit tous les fichiers, on passe aux sous dossiers //sinon découper le vecteur par sousdossier et appeler la fonction pour chaqu'un des dossiers
{
//si il y à des fichiers/dossier à mettre
string name_next=Triage[0].Path[profondeur]; //nom du prochain
vector<TriageFile> Triage_next; //fichier du prochain
sous_dossier=(me.Nb>=NOMBRE_OF_FILE);
int meNb=me.Nb;
while(Triage.size()>0 && !sous_dossier) //tant qu'on a pas distribué tous les fichiers/dossiers
{
bool ok=true;
for(unsigned int i=0;i<Triage.size() && ok;++i)
{
if(Triage[i].Path[profondeur]==name_next) //on prend tous les fichier qui seront dans le prochain dossier
{
Triage_next.push_back(Triage[i]);
Triage.erase(Triage.begin()+i);
--i;
}
else
ok=false;
}
fseek(DatFile,0,SEEK_END);
CurrentOffset=ftell(DatFile);
me.FilesEntry[meNb]=CurrentOffset;
sous_dossier=((++meNb)>=NOMBRE_OF_FILE);
DirectoryEntry NextDir;//prochain repertoir
NextDir.setName((char*)name_next.c_str());
AddInDirectory(Triage_next,profondeur+1,DatFile,name_next.c_str(),NextDir);
Triage_next.clear();
if (Triage.size()>0)
name_next=Triage[0].Path[profondeur];
}
me.Nb=meNb;
ResetMe(DatFile,&me,SeekCurrentDir); //on reecrit les info sur le dossier
if (sous_dossier)
DeleguerDossier(Triage,profondeur,DatFile,name,&me,SeekCurrentDir);
}
fseek(DatFile,0,SEEK_END);
};