3

So, I recently got a request to come up with the following solution. I'm sure there's a bunch of ways to do this, including writing a custom script, but I wanted to know the best recommended way to solve it.

They'd like to have the following file structure. Files would only be stored in the deepest subdirectories (Quotes and Images).

  • Clients
    • John Doe
      • Quotes
      • Images
    • Jane Doe
      • Quotes
      • Images
    • Jack Doe
      • Quotes
      • Images
    • Carl
      • Quotes
      • Images

However, at the same time, they'd like to be able to view

  • All Quotes
  • All Images

Which would contain all of the files (and links to) all of the aggregated files from the associated subdirectories.

Personally, I think the simplest solution is the best (rather than having to install a Digital Asset Manager or something along those lines) but I'd really like to hear what you think is the best way of solving this problem, regardless of complexity.

4
  • "View" as in View in a single directory or as in get ACLs to traverse the directory tree and access files underneath of each 'client' directory?
    – the-wabbit
    Jul 11, 2012 at 16:45
  • Directory view, not ACLs. All of the users would have access to all folders.
    – Brett G
    Jul 12, 2012 at 14:58
  • 1
    So if all of your Quotes or Images directory contents should be consolidated in All Quotes or All Images, how do you intend to handle naming conflicts (i.e. John and Jane both having a holiday.jpg within their respective Images directory)?
    – the-wabbit
    Jul 12, 2012 at 15:01
  • @Syneticon-dj that is a good question. I'm not saying that they all have to be in files that they browse to through explorer... I'm open to Asset management or other solutions as well.
    – Brett G
    Jul 17, 2012 at 20:58

4 Answers 4

3
+50

Windows Vista and later versions come with the ability to save file searches and re-run them upon double-klicking - this might be sufficient for you.

If you need something which is client-independent / server-based, you could create directories for "All Quotes" and "All Images" and periodically run a script creating either hard or symbolic links to the quote / image files in the underneath user's directories with the user name as the prefix to prevent naming conflicts (like "jane doe - holiday.jpg"). You could use a service like ChkMagic which would be watching your directories and trigger the script only when the contents have actually been modified.

Both solutions would require you to have set the filesystem permissions appropriately (i.e. every user should at least be able to traverse the foreign user's directories and read the contained files).

1

How many clients are there? If there are really only four like you list you can use a DFS namespace to aggregate all of the shares underneath each client. This isn't viable with more than a handful of users, though, since you'd need to link each subfolder to the namespace.

2
  • There would be 20-30 users accessing this and around 40-50 clients that would require folders.
    – Brett G
    Jul 12, 2012 at 14:57
  • DFS sounds like the best answer. Pretty easy to implement and you have control over the "All" folders relatively easy if you had to add more. We had DFS going for our entire school district without many issues. The big one as Macs couldn't read DFS shares. I believe they solved that in OS 10.5 and later though.
    – Mike
    Jul 18, 2012 at 18:53
1

If you had Sharepoint setup on your Windows Server 2003 server (which is available for free), you could create a document library, with content types for Quotes and Images. Both content types would have a column defined for the Client Name - you could make this a select list, and give a specific person the responsibility of updating this list. Client Name is set as required.

Files are then saved into this document library, and must be assigned a content type, and then the Client Name selected.

You can then create a view of the document library for each Client, and one for All Images and one for All Quotes.

1

Sadly, Windows doesn't support such a "Fan-out" file-system. There is no way to make 1 directory out of two separate directories.

Your best bet would be to do one of the following:

A) Create a structure like this:

  • Clients
    • John Doe
      • Quotes
        • All Quotes
      • Images
        • All Images
    • Jane Doe
      • Quotes
        • All Quotes
      • Images
        • All Images
    • Jack Doe
      • Quotes
        • All Quotes
      • Images
        • All Images
    • Carl
      • Quotes
        • All Quotes
      • Images
        • All Images

B) or like this:

  • Clients
    • All Clients
      • Quotes
      • Images
    • John Doe
      • Quotes
      • Images
    • Jane Doe
      • Quotes
      • Images
    • Jack Doe
      • Quotes
      • Images
    • Carl
      • Quotes
      • Images

The First layout is probably the easiest solution for most users, but sometimes difficult to implement. I would suggest avoiding having duplicate copies of the "shared folders" and attempting to replicate all the changes of each folder to each other. This could just as easily be done using a shortcut to a "shared directory", or if you're feeling more confident, a junction to the "shared directory". The latter would have the benefit of being searchable within their own folders... but would be more complex to initially set up.

The 2nd method is easier to setup/administer/manage by the administrator, but isn't as friendly for the user. You would just build a single "All Users" type directory and inform your users of it's existence/location. The down-side of this is that many users simply won't use it. Rather than look in two places (potentially doubling the time looking for a file) they'll just opt for the simpler approach of copying "shared documents" to their private folder... or duplicating everything.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .