Initial commit

This commit is contained in:
2025-11-17 10:28:09 +01:00
parent 7bff81691f
commit 6ee36e26be
391 changed files with 110253 additions and 0 deletions

209
source/fileSystem.c Executable file
View File

@@ -0,0 +1,209 @@
#include <fileSystem.h>
void fileSystem_writeFile( char * filepath, char * data )
{
FILE *fp = fopen( filepath, "wb" );
if (fp != NULL)
{
fputs( data, fp );
fclose( fp );
}
}
int fileSystem_textIsFilename( char * value ) {
array * parts = text_split( text_copy( value ) , "." );
int partsCount = array_length( parts );
if( partsCount > 1 ) {
return 1;
} else {
return 0;
}
}
void fileSystem_ensureDirectory( char * filePath ) {
//printf("fileSystem_ensureDirectory: %s\n\n\n\n", filePath);
struct array * parts = text_split( text_copy( filePath ), "/" );
int count = array_length( parts );
for ( int i = 1; i < count; ++i )
{
struct text * currentPath = text_new( "" );
for (int j = 0; j < i; ++j)
{
char * pathPart = array_get( parts, j );
text_append( currentPath, pathPart );
text_append( currentPath, "/" );
if( fileSystem_exists( currentPath->value ) ) {
} else {
if( strlen( currentPath->value ) > 100 ) {
printf(" ERROR: TempPath is to big. '%s' ", currentPath->value);
exit( 0 );
}
printf("Directory does not exists, Creating Directory%i '%s' \n\n", strlen( currentPath->value ),currentPath->value );
fileSystem_makeDirectory( currentPath->value );
}
}
/*
struct array * tempParts = text_split( text_copy( filePath ), "/" );
for (int j = 0; j < count-i; ++j)
{
array_pop( tempParts );
}
char * tempPath = text_join( tempParts, "/" );
if( fileSystem_exists( tempPath ) ) {
} else {
if( strlen( tempPath ) > 100 ) {
printf(" ERROR: TempPath is to big. '%s' ", filePath);
exit( 0 );
}
printf("Directory does not exists, Creating Directory%i '%s' \n\n", strlen( tempPath ),tempPath );
fileSystem_makeDirectory( tempPath );
}
printf( " tempPath: %s\n", tempPath);
*/
}
}
int fileSystem_makeDirectory( char * path ) {
if ( fileSystem_exists( path ) == NULL ) {
mkdir( path, 0700 );
}
return 1;
}
int fileSystem_exists( char * path ) {
if ( access( path, F_OK ) == 0 ) {
return 1;
} else {
return 0;
}
}
struct array * fileSystem_readDir( char * filePath ) {
DIR * dir;
struct dirent * entry;
struct array * files = array_new();
if ( ( dir = opendir( filePath ) ) == NULL ){
perror("opendir() error");
} else {
while( ( entry = readdir( dir ) ) != NULL ) {
char * filename = (char *)entry->d_name;
if ( strcmp( filename, ".." ) != 0 && strcmp( filename, "." ) != 0 ) {
array_add( files, filename );
//printf("%s\n", filename);
}
}
}
return files;
//closedir(dir);
}
char * fileSystem_readFile( char * name ) {
FILE * file = fopen( name, "r" );
if ( file == NULL ) {
fprintf(stderr, "Error: Can't open file '%s'. \n\n", name);
exit(EXIT_FAILURE);
}
fseek( file, 0, SEEK_END );
long length = ftell(file);
fseek( file, 0, SEEK_SET );
char * buffer = malloc( sizeof( char ) * ( length + 1 ) );
buffer[ length ] = '\0';
fread( buffer, sizeof(char), length, file );
fclose(file);
return buffer;
}