Solved

Extending FileInfo

Posted on 2004-04-23
9
638 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

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

Introduction Although it is an old technology, serial ports are still being used by many hardware manufacturers. If you develop applications in C#, Microsoft .NET framework has SerialPort class to communicate with the serial ports.  I needed to…
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…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…

691 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