views:

214

answers:

1

For my next project, the two leading frontrunners are .NET and Java. The project is to take a directory (something like My Music in Windows) that contains directories and music files (MP3s initially, but eventually expanded to other music formats). For each file, it would allow you to play the file and view/edit its metadata, filename, and location.

I know that Java has libraries for both getting/editing metadata and cross-platform support for file operations. I also know that .NET has libraries for dealing with the metadata, but I'm not sure about the file operations I need. However, I really want to get back into .NET, especially since I want to keep it on my resume, but I haven't used it since .NET 2.0 (and it's, what, 3.5 now?) and if I don't keep up with it, there's no point in putting it on my resume since I couldn't answer any questions about new versions of the technology.

Initially, Windows is my only concern, but I would like to release this as a cross-platform application.

Note: I do know that I'm reinventing the wheel, but this is a problem that I've encountered and I think it would be kind of fun to solve. It deals with a number of problems, from UI concerns to file structure management to external libraries and more.

+3  A: 

The official page from mono on the first part of this topic is IOMap.

Mono now has a portability layer into Mono that will address those problems without requiring changes to your code. This will remove a large component of the porting cycle as a whole class of obnoxious problems are gone.

The new portability framework is enabled by setting the environment variable MONO_IOMAP (which we will likely rename to something shorter) to one of the following values:

  • case: makes all file system access case insensitive.
  • drive: strips drive name from pathnames.
  • all: enables both case and drive.

In addition, if any of those options are enabled, the directory separator mapping is also turned on.

This functionality is included since 1.1.18.

David Schmitt