<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>File and File Container Wrapper</title><link>http://www.codeplex.com/ifilecontainer/Project/ProjectRss.aspx</link><description>This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.   </description><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=11</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ifilecontainer&amp;amp;DownloadId=24131" alt="filefolder.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;FileStrategyLib.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;FileStrategyLib.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;FileStrategyLib contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;You can download the latest release from &lt;a href="http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;What could you do with this? There are lots of things you can consider to treat like a file/file container. For example:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SharePoint Document Libraries&lt;/li&gt;&lt;li&gt;Database blobs that contain Documents&lt;/li&gt;&lt;li&gt;Other types of file compressors (Zip, RAR, CAB, etc.)&lt;/li&gt;&lt;li&gt;FTP sites&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Wed, 19 Dec 2007 21:21:05 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071219092105P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=10</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt; &lt;br /&gt;&lt;img src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=ifilecontainer&amp;amp;DownloadId=24131" alt="filefolder.jpg" /&gt;&lt;br /&gt; &lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;FileStrategyLib.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;FileStrategyLib.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;FileStrategyLib contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;You can download the latest release from &lt;a href="http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;What could you do with this? There are lots of things you can consider to treat like a file/file container. For example:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SharePoint Document Libraries&lt;/li&gt;&lt;li&gt;Database blobs that contain Documents&lt;/li&gt;&lt;li&gt;Other types of file compressors (Zip, RAR, CAB, etc.)&lt;/li&gt;&lt;li&gt;FTP sites&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Wed, 19 Dec 2007 21:20:52 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071219092052P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/ifilecontainer/SourceControl/ListDownloadableCommits.aspx</link><description>Bound solution and projects to source contro. TFS sucks the big one.</description><author>bsimser</author><pubDate>Tue, 18 Dec 2007 01:24:42 GMT</pubDate><guid isPermaLink="false">Source code checked in 20071218012442A</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/ifilecontainer/SourceControl/ListDownloadableCommits.aspx</link><description>Initial checkin of source tree.</description><author>bsimser</author><pubDate>Tue, 18 Dec 2007 01:22:37 GMT</pubDate><guid isPermaLink="false">Source code checked in 20071218012237A</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=9</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;FileStrategyLib.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;FileStrategyLib.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;FileStrategyLib contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;You can download the latest release from &lt;a href="http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;What could you do with this? There are lots of things you can consider to treat like a file/file container. For example:&lt;br /&gt;&lt;ul&gt;
&lt;li&gt;SharePoint Document Libraries&lt;/li&gt;&lt;li&gt;Database blobs that contain Documents&lt;/li&gt;&lt;li&gt;Other types of file compressors (Zip, RAR, CAB, etc.)&lt;/li&gt;&lt;li&gt;FTP sites&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 19:15:45 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217071545P</guid></item><item><title>UPDATED WIKI: Sample Usage</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample Usage&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Sample Usage
&lt;/h2&gt;Here are some sample implementations of the interfaces. These implementations are available in the binary package as FileStrategyLib.dll and in the source solution under the FileStrategyLib project.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile implementation using the local file system&lt;/b&gt;&lt;br /&gt;Here's a simple implemenation of the IFile interface using the file system. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            FileStream stream = File.Create(name);
            stream.Close();
        }
 
        public void Delete(string name)
        {
            File.Delete(name);
        }
&lt;/pre&gt;&lt;b&gt;IFileContainer implementation using the local file system&lt;/b&gt;&lt;br /&gt;This implementation of the IFileContainer interface lets you add/remove files from a folder and get information about the files in the folder. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            _directoryName = name;
            Directory.CreateDirectory(_directoryName);
        }
 
        public void Delete(string name)
        {
            Directory.Delete(name, true);
        }
 
        public void Add(string sourceFile)
        {
            string destinationFile = formatFullPath(sourceFile);
            File.Copy(sourceFile, destinationFile, true);
        }
 
        public void Add(string sourceFile, bool useCompression)
        {
            throw new NotImplementedException();
        }
 
        public int FileCount
        {
            get { return Directory.GetFiles(_directoryName).Length; }
        }
 
        public long GetSizeFor(string fileName)
        {
            byte[] bytes = File.ReadAllBytes(formatFullPath(fileName));
            return bytes.Length;
        }
&lt;/pre&gt;&lt;b&gt;IFileContainer implementation using the SharpZipLib library for creating zip files&lt;/b&gt;&lt;br /&gt;This a more advanced implementation of IFileContainer where the purpose is to create zip files. It implements the same interfaces as the the Folder class but uses the SharpZipLib ZipFile object to hold it's information about files (rather than folders or some other container).&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        private ZipFile _zipfile;
 
        public void Add(string sourceFile)
        {
            Add(sourceFile, true);
        }
 
        public void Add(string sourceFile, bool useCompression)
        {
            _zipfile.BeginUpdate();
            if (useCompression)
                _zipfile.Add(sourceFile, CompressionMethod.Deflated);
            else
                _zipfile.Add(sourceFile, CompressionMethod.Stored);
            _zipfile.CommitUpdate();
        }
 
        public int FileCount
        {
            get { return Convert.ToInt32(_zipfile.Count); }
        }
 
        public long GetSizeFor(string fileName)
        {
            ZipEntry entry = _zipfile.GetEntry(fileName);
            return entry.CompressedSize;
        }
 
        public void Create(string name)
        {
            _zipfile = ZipFile.Create(name);
        }
 
        public void Delete(string name)
        {
            _zipfile.Close();
            File.Delete(name);
        }
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:52:46 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Usage 20071217065246P</guid></item><item><title>UPDATED WIKI: Sample Usage</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample Usage&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Sample Usage
&lt;/h2&gt;Here are some sample implementations of the interfaces. These implementations are available in the binary package as FileStrategyLib.dll and in the source solution under the FileStrategyLib project.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile implementation using the local file system&lt;/b&gt;&lt;br /&gt;Here's a simple implemenation of the IFile interface using the file system. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            FileStream stream = File.Create(name);
            stream.Close();
        }
 
        public void Delete(string name)
        {
            File.Delete(name);
        }
&lt;/pre&gt;&lt;b&gt;IFileContainer implementation using the local file system&lt;/b&gt;&lt;br /&gt;This implementation of the IFileContainer interface lets you add/remove files from a folder and get information about the files in the folder. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            _directoryName = name;
            Directory.CreateDirectory(_directoryName);
        }
 
        public void Delete(string name)
        {
            Directory.Delete(name, true);
        }
 
        public void Add(string sourceFile)
        {
            string destinationFile = formatFullPath(sourceFile);
            File.Copy(sourceFile, destinationFile, true);
        }
 
        public void Add(string sourceFile, bool useCompression)
        {
            throw new NotImplementedException();
        }
 
        public int FileCount
        {
            get { return Directory.GetFiles(_directoryName).Length; }
        }
 
        public long GetSizeFor(string fileName)
        {
            byte[] bytes = File.ReadAllBytes(formatFullPath(fileName));
            return bytes.Length;
        }
&lt;/pre&gt;IFileContainer implementation using the SharpZipLib library for creating zip files&lt;br /&gt;This a more advanced implementation of IFileContainer where the purpose is to create zip files. It implements the same interfaces as the the Folder class but uses the SharpZipLib ZipFile object to hold it's information about files (rather than folders or some other container).&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        private ZipFile _zipfile;
 
        public void Add(string sourceFile)
        {
            Add(sourceFile, true);
        }
 
        public void Add(string sourceFile, bool useCompression)
        {
            _zipfile.BeginUpdate();
            if (useCompression)
                _zipfile.Add(sourceFile, CompressionMethod.Deflated);
            else
                _zipfile.Add(sourceFile, CompressionMethod.Stored);
            _zipfile.CommitUpdate();
        }
 
        public int FileCount
        {
            get { return Convert.ToInt32(_zipfile.Count); }
        }
 
        public long GetSizeFor(string fileName)
        {
            ZipEntry entry = _zipfile.GetEntry(fileName);
            return entry.CompressedSize;
        }
 
        public void Create(string name)
        {
            _zipfile = ZipFile.Create(name);
        }
 
        public void Delete(string name)
        {
            _zipfile.Close();
            File.Delete(name);
        }
&lt;/pre&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:52:28 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Usage 20071217065228P</guid></item><item><title>UPDATED WIKI: Sample Usage</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample Usage&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Sample Usage
&lt;/h2&gt;Here are some sample implementations of the interfaces. These implementations are available in the binary package as FileStrategyLib.dll and in the source solution under the FileStrategyLib project.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile implementation using the local file system&lt;/b&gt;&lt;br /&gt;Here's a simple implemenation of the IFile interface using the file system. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            FileStream stream = File.Create(name);
            stream.Close();
        }
 
        public void Delete(string name)
        {
            File.Delete(name);
        }
&lt;/pre&gt;&lt;b&gt;IFileContainer implementation using the local file system&lt;/b&gt;&lt;br /&gt;This implementation of the IFileContainer interface lets you add/remove files from a folder and get information about the files in the folder. This is included in the FileStrategyLib.dll:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
        public void Create(string name)
        {
            _directoryName = name;
            Directory.CreateDirectory(_directoryName);
        }
 
        public void Delete(string name)
        {
            Directory.Delete(name, true);
        }
 
        public void Add(string sourceFile)
        {
            string destinationFile = formatFullPath(sourceFile);
            File.Copy(sourceFile, destinationFile, true);
        }
 
        public void Add(string sourceFile, bool useCompression)
        {
            throw new NotImplementedException();
        }
 
        public int FileCount
        {
            get { return Directory.GetFiles(_directoryName).Length; }
        }
 
        public long GetSizeFor(string fileName)
        {
            byte[] bytes = File.ReadAllBytes(formatFullPath(fileName));
            return bytes.Length;
        }
&lt;/pre&gt;IFileContainer implementation using the SharpZipLib library for creating zip files&lt;br /&gt;This a more advanced implementation of IFileContainer where the purpose is to create zip files.&lt;br /&gt; &lt;br /&gt;TODO: provide sample documentation&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:50:34 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Usage 20071217065034P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=8</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;FileStrategyLib.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;FileStrategyLib.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;FileStrategyLib contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;You can download the latest release from &lt;a href="http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197"&gt;here&lt;/a&gt;.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:44:09 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217064409P</guid></item><item><title>RELEASED: 1.0 (Dec 17, 2007)</title><link>http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197</link><description>Initial release.</description><author></author><pubDate>Mon, 17 Dec 2007 18:41:44 GMT</pubDate><guid isPermaLink="false">RELEASED: 1.0 (Dec 17, 2007) 20071217064144P</guid></item><item><title>UPDATED RELEASE: 1.0 (Dec 17, 2007)</title><link>http://www.codeplex.com/ifilecontainer/Release/ProjectReleases.aspx?ReleaseId=9197</link><description>Initial release.</description><author></author><pubDate>Mon, 17 Dec 2007 18:41:44 GMT</pubDate><guid isPermaLink="false">UPDATED RELEASE: 1.0 (Dec 17, 2007) 20071217064144P</guid></item><item><title>UPDATED WIKI: Sample Usage</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample Usage&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Sample Usage
&lt;/h2&gt;Here are some sample implementations of the interfaces. These implementations are available in the binary package as FileStrategyLib.dll and in the source solution under the FileStrategyLib project.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile implementation using the local file system&lt;/b&gt;&lt;br /&gt;TODO: provide sample documentation&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer implementation using the local file system&lt;/b&gt;&lt;br /&gt;TODO: provide sample documentation&lt;br /&gt; &lt;br /&gt;IFileContainer implementation using the SharpZipLib library for creating zip files&lt;br /&gt;This a more advanced implementation of IFileContainer where the purpose is to create zip files.&lt;br /&gt; &lt;br /&gt;TODO: provide sample documentation&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:39:37 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Usage 20071217063937P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;FileStrategyLib.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;FileStrategyLib.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;FileStrategyLib contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;(TODO: add release links for downloading the source and binary packages)&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 18:38:49 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217063849P</guid></item><item><title>UPDATED WIKI: Sample Usage</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample Usage&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Sample Usage
&lt;/h2&gt;Here are some sample implementations of the interfaces. These implementations are available in the binary package as BilSimser.FileStrategy.dll and in the source solution under the BilSimser.FileStrategy project.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile implementation using the local file system&lt;/b&gt;&lt;br /&gt;TODO: provide sample documentation&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer implementation using the local file system&lt;/b&gt;&lt;br /&gt;TODO: provide sample documentation&lt;br /&gt; &lt;br /&gt;IFileContainer implementation using the SharpZipLib library for creating zip files&lt;br /&gt;This a more advanced implementation of IFileContainer where the purpose is to create zip files.&lt;br /&gt; &lt;br /&gt;TODO: provide sample documentation&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:27:27 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Usage 20071217052727P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="http://www.icsharpcode.net/OpenSource/SharpZipLib/" class="externalLink"&gt;SharpZipLib&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;BilSimser.FileStrategy.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;BilSimser.FileStrategy.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;BilSimser.FileStrategy contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;(TODO: add release links for downloading the source and binary packages)&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:24:01 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217052401P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This library is a lightweight set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;The API documentation contains the interfaces with documentation for each method. The Sample Usage contains implementations of the IFile and IFileContainer using Files, Folders, and a Zip File (which implements IFileContainer) using &lt;a href="SharpZipLib" class="externalLink"&gt;http://www.icsharpcode.net/OpenSource/SharpZipLib/&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt; to do the work of the zipping of files.&lt;br /&gt; &lt;br /&gt;The solution consists of three projects:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;BilSimser.FileStrategy.Interface contains the IFile and IFileContainer interfaces. &lt;/li&gt;&lt;li&gt;BilSimser.FileStrategy.Test contains the unit tests for the file, folder, and zip file wrappers&lt;/li&gt;&lt;li&gt;BilSimser.FileStrategy contains the implementation of the interfaces for files (IFile), folders (IFileContainer) and zip files (IFileContainer)&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;The Unit Test project provides tests for creating files and directories as well as excercising the zip implementation. The Unit Tests are self contained and clean up after themselves.&lt;br /&gt; &lt;br /&gt;(TODO: add release links for downloading the source and binary packages)&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt; &lt;br /&gt;Feel free to submit patches to the library or samples for additional usage.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:23:03 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217052303P</guid></item><item><title>UPDATED WIKI: API Documentation</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API Documentation&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
API Documentation
&lt;/h2&gt;The API for the system is very simple. Any file wrapper or file container wrapper must implement the following interfaces:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
    public interface IFile
    {
        void Create(string name);
        void Delete(string name);
    }
&lt;/pre&gt; &lt;br /&gt;&lt;pre&gt;
    public interface IFileContainer : IFile
    {
        int FileCount { get; }
        void Add(string sourceFile);
        void Add(string sourceFile, bool useCompression);
        long GetSizeFor(string fileName);
    }
&lt;/pre&gt; &lt;br /&gt;Below is a description for each interface method:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile.Create(string filename)&lt;/b&gt;&lt;br /&gt;This creates a new file with the supplied filename.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile.Delete(string filename)&lt;/b&gt;&lt;br /&gt;This deletes a file from the system based on the supplied filename.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.FileCount&lt;/b&gt;&lt;br /&gt;This is a property that will return the number of files in the container.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.Add(string filename)&lt;/b&gt;&lt;br /&gt;This method adds an existing file to the container.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.Add(string filename, bool useCompression)&lt;/b&gt;&lt;br /&gt;This method adds an existing file to the container but uses compression. This was added to the interface for the purpose of supporting containers that support compression. It is left unimplemented for a folder and will throw a System.NotImplementedException exception.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.GetSizeFor(string filename)&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;For sample implemenations of the wrappers see FileStrategy, FolderStrategy, and SharpLibZipFileStrategy in the source code and &lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=API%20Documentation"&gt;here&lt;/a&gt; on this wiki.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Note: As IFileContainer inherits its interface from IFile, you must provide implementations the Create and Delete methods in your container.&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:15:18 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: API Documentation 20071217051518P</guid></item><item><title>UPDATED WIKI: API Documentation</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API Documentation&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;
API Documentation
&lt;/h1&gt;The API for the system is very simple. Any file wrapper or file container wrapper must implement the following interfaces:&lt;br /&gt; &lt;br /&gt;&lt;pre&gt;
    public interface IFile
    {
        void Create(string name);
        void Delete(string name);
    }
&lt;/pre&gt; &lt;br /&gt;&lt;pre&gt;
    public interface IFileContainer : IFile
    {
        int FileCount { get; }
        void Add(string sourceFile);
        void Add(string sourceFile, bool useCompression);
        long GetSizeFor(string fileName);
    }
&lt;/pre&gt; &lt;br /&gt;Below is a description for each interface method:&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile.Create(string filename)&lt;/b&gt;&lt;br /&gt;This creates a new file with the supplied filename.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFile.Delete(string filename)&lt;/b&gt;&lt;br /&gt;This deletes a file from the system based on the supplied filename.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.FileCount&lt;/b&gt;&lt;br /&gt;This is a property that will return the number of files in the container.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.Add(string filename)&lt;/b&gt;&lt;br /&gt;This method adds an existing file to the container.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.Add(string filename, bool useCompression)&lt;/b&gt;&lt;br /&gt;This method adds an existing file to the container but uses compression. This was added to the interface for the purpose of supporting containers that support compression. It is left unimplemented for a folder and will throw a System.NotImplementedException exception.&lt;br /&gt; &lt;br /&gt;&lt;b&gt;IFileContainer.GetSizeFor(string filename)&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;For sample implemenations of the wrappers see FileStrategy, FolderStrategy, and SharpLibZipFileStrategy in the source code and &lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Samples&amp;amp;referringTitle=API%20Documentation"&gt;here&lt;/a&gt; on this wiki.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Note: As IFileContainer inherits its interface from IFile, you must provide implementations the Create and Delete methods in your container.&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:14:56 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: API Documentation 20071217051456P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This is a set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=API%20Documentation&amp;amp;referringTitle=Home"&gt;API Documentation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Sample%20Usage&amp;amp;referringTitle=Home"&gt;Sample Usage&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:06:04 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217050604P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=Home&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;This is a set of interfaces, tests, and sample implementations for wrapping up file systems and file containers.&lt;br /&gt;
&lt;br /&gt;How many times have you written some code to test simple file systems? Or folders? Or zip files? &lt;br /&gt; &lt;br /&gt;This is a set of components for making working with file systems (or things that contain files) easier, testable, and flexible. The components demonstrate a use case for abstraction, polymorphism, interface-based programming, and the Strategy Pattern as each implementation of the contract described here is a strategy.&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=code%20and%20examples&amp;amp;referringTitle=Home"&gt;code and examples&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;In your own applications, you could use an IoC tool like Windsor.Container to resolve the interfaces to real objects like this:&lt;br /&gt; &lt;br /&gt;&lt;a href="http://www.codeplex.com/ifilecontainer/Wiki/View.aspx?title=example&amp;amp;referringTitle=Home"&gt;example&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;Have fun and please feel free to expand or extend this. The original code was written for a simple project where all that was needed was add and delete. Of course you may need additional functionality like extracting files from a container, etc.&lt;br /&gt;
&lt;/div&gt;</description><author>bsimser</author><pubDate>Mon, 17 Dec 2007 17:05:17 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20071217050517P</guid></item></channel></rss>