Cosmos/source/Archive/Cosmos.Sys.Plugs/VFS/FileInfoImpl.cs

49 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Cosmos.IL2CPU.Plugs;
using System.IO;
using Cosmos.Sys.FileSystem;
namespace Cosmos.Sys.Plugs
{
[Plug(Target = typeof(FileInfo))]
[PlugField(FieldId = "$$Storage$$", FieldType = typeof(FilesystemEntry))]
public static class FileInfoImpl
{
//[PlugMethod(Signature = "System_Void__System_IO_FileInfo__ctor_System_String_")]
public static void Ctor(
FileInfo aThis,
[FieldAccess(Name = "$$Storage$$")] ref FilesystemEntry aStorage,
String aFile
)
{
//Determine if aFile is relative or absolute
string xFile;
if (aFile.IsRelativePath())
xFile = Directory.GetCurrentDirectory() + aFile;
else
xFile = aFile;
var xEntry = VFSManager.GetDirectoryEntry(xFile);
if (!xEntry.IsDirectory)
aStorage = xEntry;
}
public static string get_Name([FieldAccess(Name = "$$Storage$$")] ref FilesystemEntry aStorage)
{
return "Filename" + aStorage.Name;
}
public static bool get_Exists([FieldAccess(Name = "$$Storage$$")] ref FilesystemEntry aStorage)
{
return VFSManager.FileExists(aStorage.Name);
}
public static string ToString(FileInfo aThis) {
return "FileInfo.ToString() not yet implemented!";
}
}
}