Program Listing for File NuMagSANSlib_Directory.h#

Return to documentation for file (src/NuMagSANSlib_Directory.h)

// File         : NuMagSANSlib_Directory.h
// Author       : Michael Philipp ADAMS, M.Sc.
// Company      : University of Luxembourg
// Department   : Department of Physics and Materials Sciences
// Group        : NanoMagnetism Group
// Group Leader : Prof. Andreas Michels
// Version      : 22 November 2024
// OS           : Linux Ubuntu
// Language     : CUDA C++

#include <iostream>
#include <fstream>
#include <sstream>
#include <sys/stat.h>
#include <sys/types.h>
#include <math.h>
#include <string>
#include <vector>
#include <stdlib.h>
#include <time.h>
#include <cuda_runtime.h>
#include <cublas_v2.h>
#include <stdexcept>
#include <math.h>
#include <chrono>
#include <dirent.h>
#include <unistd.h>
#include <limits.h>



using namespace std;


int count_NumberOfFolders(string Directory){

     struct dirent* entity;
     DIR* dir = opendir(Directory.c_str());           // open directory stored in tmp_char
     entity = readdir(dir);              // readdir command reads file and foldernames in directory
     string subfolder_name;
     int counter = 0;         // counter that counts how many folders are in the MagData folder
     while(entity != NULL){
              subfolder_name = entity->d_name;
         if(subfolder_name != "." && subfolder_name != ".." && subfolder_name != ".DS_Store" && entity->d_type == DT_DIR){
             counter += 1;
         }
         entity = readdir(dir);
     }
     closedir(dir);
     return counter;

 }

int count_NumberOfElements(string Directory){

     struct dirent* entity;
     DIR* dir = opendir(Directory.c_str());           // open directory stored in tmp_char
     entity = readdir(dir);              // readdir command reads file and foldernames in directory
     string element_name;
     int counter = 0;         // counter that counts how many folders are in the MagData folder
     while(entity != NULL){
         element_name = entity->d_name;
         if(element_name != "." && element_name != ".." && element_name != ".DS_Store"){
             counter += 1;
         }
         entity = readdir(dir);
     }
     closedir(dir);
     return counter;

 }


 void read_FolderNames(string Directory, string*FolderNames, int Number_Of_FolderNames){

     struct dirent* entity;
     DIR* dir = opendir(Directory.c_str());           // open directory stored in tmp_char
     entity = readdir(dir);              // readdir command reads file and foldernames in directory
     string subfolder_name;
     int counter = 0;         // counter that counts how many folders are in the MagData folder
     while(entity != NULL && counter < Number_Of_FolderNames){
         subfolder_name = entity->d_name;
         if(subfolder_name != "." && subfolder_name != ".." && subfolder_name != ".DS_Store"){
             FolderNames[counter] = subfolder_name;
             counter += 1;
         }
         entity = readdir(dir);
     }
     closedir(dir);

}