本文整理汇总了C++中Directory::findFileByName方法的典型用法代码示例。如果您正苦于以下问题:C++ Directory::findFileByName方法的具体用法?C++ Directory::findFileByName怎么用?C++ Directory::findFileByName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Directory
的用法示例。
在下文中一共展示了Directory::findFileByName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: deleteFile
/*
* Изтрива файловете с адреси подадени в parameters.
*/
void CommandPrompt::deleteFile(string parameters){
/*
* Извлича параметрите и ги записва в опашка.
*/
queue<string> filePaths = this->getPaths(parameters);
/*
* Тъй като ни трябва директорията в която се намира файла за да го изтрием,
* не може да ползваме determinePathAndGetFile().
*/
queue<TextFile*> files;
string fileName;
string fileDir;
Directory* tempDir;
TextFile* fileAddress;
int pos;
while (!filePaths.empty()) {
/*
* Първо разделяме пътя от името на файла
*/
fileDir = filePaths.front();
pos = fileDir.rfind('/') + 1;
if (pos - 1 != string::npos) {
while (pos < fileDir.size()) {
fileName += fileDir[pos++];
}
pos = fileDir.rfind('/');
fileDir = fileDir.erase(pos, fileDir.size());
/*
* Намираме директорията.
*/
tempDir = this->determinePathAndGetDir(fileDir);
/*
* Ако не съществува извеждаме грешка, иначе трием.
*/
if (tempDir == NULL)
cerr << "File directory not found!" << endl;
else {
fileAddress = tempDir->findFileByName(fileName);
if (fileAddress == NULL)
cerr << "File not found!" << endl;
else
tempDir->removeFile(fileAddress);
}
}
else {
/*
* Ако е подадено само името на файла в currentDir търсим и трием.
*/
fileAddress = currentDir->findFileByName(fileDir);
if (fileAddress == NULL)
cerr << "File not found!" << endl;
else
currentDir->removeFile(fileAddress);
}
filePaths.pop();
}
}
示例2: saveConcatenatedFile
/*
* Помощтна функция, за запазване/въвеждане на файлове.
*/
void CommandPrompt::saveConcatenatedFile(string path, string data){
/*
* Ако няма данни и няма подаден адрес за запис връща.
*/
if (path.empty() && data.empty())
return;
/*
* Ако няма данни се въвеждат.
*/
if (data.empty()) {
char line[1000];
string sline;
while (sline != string(".")) {
cin.getline(line, 1000);
sline = line;
if(sline != ".")
data += sline;
}
}
/*
* Ако няма outputFile се извеждат данните, ако има
* се намира/създава директория и се създава вайл в нея.
* Наследява промените по големината на директориите.
*/
if (path.empty())
cout << data << endl;
else {
string fileName = path;
Directory* dir = fs.getRoot();
int pos = path.rfind('/') + 1;
if (pos - 1 != string::npos) {
fileName = "";
while (pos < path.size())
fileName += path[pos++];
pos = path.rfind('/');
path = path.erase(pos, path.size());
dir = this->createNestedDirectories(path);
}
else
dir = currentDir;
if (dir->nameAvailable(fileName)) {
dir->addChild(new TextFile(dir->getFSysPath(),
fs.getNextNumber(),
data,
fileName));
dir->inheritSize(data.size());
}
else {
dir->findFileByName(fileName)->concatData(data);
dir->inheritSize(data.size());
}
}
}