Solved

Extending FileInfo

Posted on 2004-04-23
9
619 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
 
LVL 2

Author Comment

by:derekthornton
ID: 10986799
Sorry I took so long to get back to you!
0
What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

 
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

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Introduction                                                 Was the var keyword really only brought out to shorten your syntax? Or have the VB language guys got their way in C#? What type of variable is it? All will be revealed.   Also called…
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
When you create an app prototype with Adobe XD, you can insert system screens -- sharing or Control Center, for example -- with just a few clicks. This video shows you how. You can take the full course on Experts Exchange at http://bit.ly/XDcourse.
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

746 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now