static void UpdateGroupItems(std::vector<CProject::Group>& m_Groups) { std::vector<std::string> folderlist = GetFolderList("*"); for (unsigned int i = 0; i < folderlist.size(); i++) { if (!strcmp(folderlist[i].c_str(), ".") || !strcmp(folderlist[i].c_str(), "..")) { continue; } // insert files into that folder char directory[MAX_PATH] = {0}; GetCurrentDirectory(MAX_PATH, directory); SetCurrentDirectory(folderlist[i].c_str()); std::vector<std::string> filelist = GetFileList("*"); if (1) { CProject::Group current; current.FolderName = folderlist[i]; current.Files = GetFileList("*"); m_Groups.push_back(current); } filelist.clear(); if (GetFolderList("*").size() > 0) { UpdateGroupItems(m_Groups); } SetCurrentDirectory(directory); } }
bool FileSystemDataSource::isValidFolder(nsIRDFResource *source) { bool isValid = true; if (ieFavoritesDir.IsEmpty()) return(isValid); nsresult rv; nsCString uri; rv = source->GetValueUTF8(uri); if (NS_FAILED(rv)) return(isValid); NS_ConvertUTF8toUTF16 theURI(uri); if (theURI.Find(ieFavoritesDir) == 0) { isValid = false; nsCOMPtr<nsISimpleEnumerator> folderEnum; if (NS_SUCCEEDED(rv = GetFolderList(source, true, false, getter_AddRefs(folderEnum)))) { bool hasAny = false, hasMore; while (NS_SUCCEEDED(folderEnum->HasMoreElements(&hasMore)) && hasMore) { hasAny = true; nsCOMPtr<nsISupports> isupports; if (NS_FAILED(rv = folderEnum->GetNext(getter_AddRefs(isupports)))) break; nsCOMPtr<nsIRDFResource> res = do_QueryInterface(isupports); if (!res) break; nsCOMPtr<nsIRDFLiteral> nameLiteral; if (NS_FAILED(rv = GetName(res, getter_AddRefs(nameLiteral)))) break; const char16_t *uniName; if (NS_FAILED(rv = nameLiteral->GetValueConst(&uniName))) break; nsAutoString name(uniName); // An empty folder, or a folder that contains just "desktop.ini", // is considered to be a IE Favorite; otherwise, its a folder if (!name.LowerCaseEqualsLiteral("desktop.ini")) { isValid = true; break; } } if (!hasAny) isValid = true; } } return(isValid); }
void FileBrowser::DebugOut() { DebugMsg("FileBrowser","Listing %s",GetCurrentPath().c_str()); vector<string> folders = GetFolderList(); DebugMsg("FileBrowser","Folders : "); for(unsigned int x=0;x<folders.size();x++) { DebugMsg("FileBrowser","%s",folders.at(x).c_str()); } vector<string> files = GetFileList(); DebugMsg("FileBrowser","Files : "); for(unsigned int x=0;x<files.size();x++) { DebugMsg("FileBrowser","%s",files.at(x).c_str()); } }
//=========================================================================== void __fastcall TfrmDeviceSetting::cbDeviceNameDropDown(TObject *Sender) { TStringList *DirList = new TStringList(); GetFolderList( ApplicationFolder+"\\.Gyro_Data", DirList ); cbDeviceName->Items->BeginUpdate(); cbDeviceName->Items->Clear(); for ( int i = 0; i < DirList->Count; i++) { AnsiString FolderName = DirList->Strings[i]; int GyroNamePosition = FolderName.Pos(".Gyro_Data\\") + strlen(".Gyro_Data\\"); AnsiString GyroName = FolderName.SubString(GyroNamePosition, FolderName.Length()); cbDeviceName->Items->Add(GyroName); } cbDeviceName->Items->EndUpdate(); if ( DirList != NULL ) delete DirList; }
NS_IMETHODIMP FileSystemDataSource::GetTargets(nsIRDFResource *source, nsIRDFResource *property, bool tv, nsISimpleEnumerator **targets /* out */) { NS_PRECONDITION(source != nullptr, "null ptr"); if (! source) return NS_ERROR_NULL_POINTER; NS_PRECONDITION(property != nullptr, "null ptr"); if (! property) return NS_ERROR_NULL_POINTER; NS_PRECONDITION(targets != nullptr, "null ptr"); if (! targets) return NS_ERROR_NULL_POINTER; *targets = nullptr; // we only have positive assertions in the file system data source. if (! tv) return NS_RDF_NO_VALUE; nsresult rv; if (source == mNC_FileSystemRoot) { if (property == mNC_Child) { return GetVolumeList(targets); } else if (property == mNC_pulse) { nsCOMPtr<nsIRDFLiteral> pulseLiteral; mRDFService->GetLiteral(MOZ_UTF16("12"), getter_AddRefs(pulseLiteral)); return NS_NewSingletonEnumerator(targets, pulseLiteral); } } else if (isFileURI(source)) { if (property == mNC_Child) { return GetFolderList(source, false, false, targets); } else if (property == mNC_Name) { nsCOMPtr<nsIRDFLiteral> name; rv = GetName(source, getter_AddRefs(name)); if (NS_FAILED(rv)) return rv; return NS_NewSingletonEnumerator(targets, name); } else if (property == mNC_URL) { nsCOMPtr<nsIRDFLiteral> url; rv = GetURL(source, nullptr, getter_AddRefs(url)); if (NS_FAILED(rv)) return rv; return NS_NewSingletonEnumerator(targets, url); } else if (property == mRDF_type) { nsCString uri; rv = mNC_FileSystemObject->GetValueUTF8(uri); if (NS_FAILED(rv)) return rv; NS_ConvertUTF8toUTF16 url(uri); nsCOMPtr<nsIRDFLiteral> literal; rv = mRDFService->GetLiteral(url.get(), getter_AddRefs(literal)); if (NS_FAILED(rv)) return rv; return NS_NewSingletonEnumerator(targets, literal); } else if (property == mNC_pulse) { nsCOMPtr<nsIRDFLiteral> pulseLiteral; rv = mRDFService->GetLiteral(MOZ_UTF16("12"), getter_AddRefs(pulseLiteral)); if (NS_FAILED(rv)) return rv; return NS_NewSingletonEnumerator(targets, pulseLiteral); } } return NS_NewEmptyEnumerator(targets); }
NS_IMETHODIMP FileSystemDataSource::GetTarget(nsIRDFResource *source, nsIRDFResource *property, bool tv, nsIRDFNode **target /* out */) { NS_PRECONDITION(source != nullptr, "null ptr"); if (! source) return NS_ERROR_NULL_POINTER; NS_PRECONDITION(property != nullptr, "null ptr"); if (! property) return NS_ERROR_NULL_POINTER; NS_PRECONDITION(target != nullptr, "null ptr"); if (! target) return NS_ERROR_NULL_POINTER; *target = nullptr; nsresult rv = NS_RDF_NO_VALUE; // we only have positive assertions in the file system data source. if (! tv) return NS_RDF_NO_VALUE; if (source == mNC_FileSystemRoot) { if (property == mNC_pulse) { nsIRDFLiteral *pulseLiteral; mRDFService->GetLiteral(MOZ_UTF16("12"), &pulseLiteral); *target = pulseLiteral; return NS_OK; } } else if (isFileURI(source)) { if (property == mNC_Name) { nsCOMPtr<nsIRDFLiteral> name; rv = GetName(source, getter_AddRefs(name)); if (NS_FAILED(rv)) return(rv); if (!name) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); return name->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } else if (property == mNC_URL) { nsCOMPtr<nsIRDFLiteral> url; rv = GetURL(source, nullptr, getter_AddRefs(url)); if (NS_FAILED(rv)) return(rv); if (!url) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); return url->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } else if (property == mNC_Icon) { nsCOMPtr<nsIRDFLiteral> url; bool isFavorite = false; rv = GetURL(source, &isFavorite, getter_AddRefs(url)); if (NS_FAILED(rv)) return(rv); if (isFavorite || !url) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); const char16_t *uni = nullptr; url->GetValueConst(&uni); if (!uni) return(NS_RDF_NO_VALUE); nsAutoString urlStr; urlStr.Assign(NS_LITERAL_STRING(NS_MOZICON_SCHEME).get()); urlStr.Append(uni); rv = mRDFService->GetLiteral(urlStr.get(), getter_AddRefs(url)); if (NS_FAILED(rv) || !url) return(NS_RDF_NO_VALUE); return url->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } else if (property == mNC_Length) { nsCOMPtr<nsIRDFInt> fileSize; rv = GetFileSize(source, getter_AddRefs(fileSize)); if (NS_FAILED(rv)) return(rv); if (!fileSize) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); return fileSize->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } else if (property == mNC_IsDirectory) { *target = (isDirURI(source)) ? mLiteralTrue : mLiteralFalse; NS_ADDREF(*target); return NS_OK; } else if (property == mWEB_LastMod) { nsCOMPtr<nsIRDFDate> lastMod; rv = GetLastMod(source, getter_AddRefs(lastMod)); if (NS_FAILED(rv)) return(rv); if (!lastMod) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); return lastMod->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } else if (property == mRDF_type) { nsCString type; rv = mNC_FileSystemObject->GetValueUTF8(type); if (NS_FAILED(rv)) return(rv); #ifdef XP_WIN // under Windows, if its an IE favorite, return that type if (!ieFavoritesDir.IsEmpty()) { nsCString uri; rv = source->GetValueUTF8(uri); if (NS_FAILED(rv)) return(rv); NS_ConvertUTF8toUTF16 theURI(uri); if (theURI.Find(ieFavoritesDir) == 0) { if (theURI[theURI.Length() - 1] == '/') { rv = mNC_IEFavoriteFolder->GetValueUTF8(type); } else { rv = mNC_IEFavoriteObject->GetValueUTF8(type); } if (NS_FAILED(rv)) return(rv); } } #endif NS_ConvertUTF8toUTF16 url(type); nsCOMPtr<nsIRDFLiteral> literal; mRDFService->GetLiteral(url.get(), getter_AddRefs(literal)); rv = literal->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); return(rv); } else if (property == mNC_pulse) { nsCOMPtr<nsIRDFLiteral> pulseLiteral; mRDFService->GetLiteral(MOZ_UTF16("12"), getter_AddRefs(pulseLiteral)); rv = pulseLiteral->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); return(rv); } else if (property == mNC_Child) { // Oh this is evil. Somebody kill me now. nsCOMPtr<nsISimpleEnumerator> children; rv = GetFolderList(source, false, true, getter_AddRefs(children)); if (NS_FAILED(rv) || (rv == NS_RDF_NO_VALUE)) return(rv); bool hasMore; rv = children->HasMoreElements(&hasMore); if (NS_FAILED(rv)) return(rv); if (hasMore) { nsCOMPtr<nsISupports> isupports; rv = children->GetNext(getter_AddRefs(isupports)); if (NS_FAILED(rv)) return(rv); return isupports->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } } #ifdef USE_NC_EXTENSION else if (property == mNC_extension) { nsCOMPtr<nsIRDFLiteral> extension; rv = GetExtension(source, getter_AddRefs(extension)); if (!extension) rv = NS_RDF_NO_VALUE; if (rv == NS_RDF_NO_VALUE) return(rv); return extension->QueryInterface(NS_GET_IID(nsIRDFNode), (void**) target); } #endif } return(NS_RDF_NO_VALUE); }
static void UpdateTreeStructure(CTreeCtrl& m_TreeControl, HTREEITEM root) { const int FOLDER_CLOSED = 1; const int FOLDER_OPENED = 2; std::vector<std::string> folderlist = GetFolderList("*"); for (unsigned int i = 0; i < folderlist.size(); i++) { if (!strcmp(folderlist[i].c_str(), ".") || !strcmp(folderlist[i].c_str(), "..")) { continue; } // insert folder HTREEITEM item = m_TreeControl.InsertItem( TVIF_PARAM | TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, folderlist[i].c_str(), FOLDER_CLOSED, // image, FOLDER_OPENED, // selected_image, 0, 0, 0, // item, root == NULL ? TVI_ROOT : root, TVI_SORT ); // insert files into that folder char directory[MAX_PATH] = {0}; GetCurrentDirectory(MAX_PATH, directory); SetCurrentDirectory(folderlist[i].c_str()); std::vector<std::string> filelist = GetFileList("*"); for (unsigned int j = 0; j < filelist.size(); j++) { // don't show thumbs.db files if (filelist[j].size() >= strlen("thumbs.db") && strcmp_ci(filelist[j].c_str(), "thumbs.db") == 0) continue; // don't show folder.htt files if (filelist[j].size() >= strlen("folder.htt") && strcmp_ci(filelist[j].c_str(), "folder.htt") == 0) continue; // don't show desktop.ini files if (filelist[j].size() >= strlen("desktop.ini") && strcmp_ci(filelist[j].c_str(), "desktop.ini") == 0) continue; // don't show .pyc files if (filelist[j].size() >= 4 && filelist[j].rfind(".pyc") == filelist[j].size() - 4) { continue; } // don't show .class files if (filelist[j].size() >= 6 && filelist[j].rfind(".class") == filelist[j].size() - 6) { continue; } int image_index = IDI_FILETYPE_BASE - 1; // Unknown icon type std::string filename = filelist[j]; for (int file_type = 0; file_type < FTL.GetNumFileTypes(); file_type++) { std::vector<std::string> extensions; FTL.GetFileTypeExtensions(file_type, false, extensions); for (unsigned int i = 0; i < extensions.size(); i++) { if (filename.rfind(extensions[i]) == filename.size() - extensions[i].size()) { image_index = IDI_FILETYPE_BASE + file_type; file_type = FTL.GetNumFileTypes(); break; } } } m_TreeControl.InsertItem( TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE, filelist[j].c_str(), image_index, image_index, //image, image, 0, 0, 0, item, TVI_SORT ); } filelist.clear(); if (GetFolderList("*").size() > 0) UpdateTreeStructure(m_TreeControl, item); SetCurrentDirectory(directory); } }