Solved

Extending FileInfo

Posted on 2004-04-23
9
626 Views
Last Modified: 2012-08-13
I'd like to add a Member to the FileInfo class, but FileInfo is sealed. I really don't know enough to write my own FileInfo-like class, what can I do?
0
Comment
Question by:derekthornton
9 Comments
 
LVL 4

Expert Comment

by:NTAC
ID: 10902775
it might be a pain, but make a class with a private instance of a FileInfo object.  Then you can add your methods, and just direct the fileinfo methods to the private instance.
0
 
LVL 22

Expert Comment

by:_TAD_
ID: 10902961




well... here is the FileInfo Class signature:

But I think your best bet is to follow NTAC's advice.




// from module 'c:\windows\microsoft.net\framework\v1.1.4322\mscorlib.dll'
public sealed class System.IO.FileInfo :
    System.IO.FileSystemInfo,
    System.Runtime.Serialization.ISerializable
{

    // Fields

    // Constructors
    public FileInfo(string fileName);

    // Properties
    public FileAttributes Attributes { get; set; }
    public DateTime CreationTime { get; set; }
    public DateTime CreationTimeUtc { get; set; }
    public DirectoryInfo Directory { get; }
    public string DirectoryName { get; }
    public bool Exists { virtual get; }
    public string Extension { get; }
    public string FullName { virtual get; }
    public DateTime LastAccessTime { get; set; }
    public DateTime LastAccessTimeUtc { get; set; }
    public DateTime LastWriteTime { get; set; }
    public DateTime LastWriteTimeUtc { get; set; }
    public long Length { get; }
    public string Name { virtual get; }

    // Methods
    public System.IO.StreamWriter AppendText();
    public System.IO.FileInfo CopyTo(string destFileName);
    public System.IO.FileInfo CopyTo(string destFileName, bool overwrite);
    public System.IO.FileStream Create();
    public virtual System.Runtime.Remoting.ObjRef CreateObjRef(Type requestedType);
    public System.IO.StreamWriter CreateText();
    public virtual void Delete();
    public virtual bool Equals(object obj);
    public virtual int GetHashCode();
    public virtual object GetLifetimeService();
    public virtual void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context);
    public Type GetType();
    public virtual object InitializeLifetimeService();
    public void MoveTo(string destFileName);
    public System.IO.FileStream Open(System.IO.FileMode mode);
    public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access);
    public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share);
    public System.IO.FileStream OpenRead();
    public System.IO.StreamReader OpenText();
    public System.IO.FileStream OpenWrite();
    public void Refresh();
    public virtual string ToString();
} // end of System.IO.FileInfo
0
 
LVL 23

Accepted Solution

by:
rama_krishna580 earned 500 total points
ID: 10905679
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
LVL 2

Author Comment

by:derekthornton
ID: 10986799
Sorry I took so long to get back to you!
0
 
LVL 4

Expert Comment

by:NTAC
ID: 11009287
????
0
 
LVL 2

Author Comment

by:derekthornton
ID: 11009347
What?
0
 
LVL 4

Expert Comment

by:NTAC
ID: 11009430
What did he post?  All he posted was a link to docuemtation that comes with .net...
0
 
LVL 2

Author Comment

by:derekthornton
ID: 11009450
.... That was the entire FileInfo Source Code.
0
 
LVL 2

Author Comment

by:derekthornton
ID: 11009456
.... That was the entire FileInfo Source Code.
0

Featured Post

Announcing the Most Valuable Experts of 2016

MVEs are more concerned with the satisfaction of those they help than with the considerable points they can earn. They are the types of people you feel privileged to call colleagues. Join us in honoring this amazing group of Experts.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction Hi all and welcome to my first article on Experts Exchange. A while ago, someone asked me if i could do some tutorials on object oriented programming. I decided to do them on C#. Now you may ask me, why's that? Well, one of the re…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…

809 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question