Skip to main content

The Un-Deleteable Windows File

I have several Open Source projects I am following and to facilitate downloading the code I created a simple NAnt script.  The script worked great until the other day one of the projects started failing to update.

Most of the projects I'm tracking are in Subversion.  All I'm doing is checking out the trunk then about once or twice a week doing an update.  So when the project started failing to update I figured it would be a simple matter of deleting the project folder and just checking it out again.

Wasn't going to happen.  One of the directories would no delete, no matter what I tried.  I tracked it down to a couple of file in hidden _svn folders.  I could delete every other file in this folder except for these.  Nothing seemed to work.

I finally dropped to a command window and attempted to DEL the file, that is when I got the first real clue what the problem was:  the file name  was too long.  The root folder of all the projects I was updating was on my Desktop so the path was already super long: C:\Documents and blah blah buried deep in the bowls of the hard drive long\Desktop.

So I moved the root folder to my c:\ and sure enough I was able to delete the folders.

Funny how that works.

Comments

Popular posts from this blog

Json for jqGrid from ASP.Net MVC

jqGrid takes a specific format for its json (taken from jqGrid documentation): [js]{ total: "xxx",page: "yyy", records: "zzz", rows : [ {id:"1", cell:["cell11", "cell12", "cell13"]}, {id:"2", cell:["cell21", "cell22", "cell23"]}, ... ]}[/js] The tags mean the following: total - Total number of Pages. page - Current page Index. records - Total number of records in the rows group. rows - An array with the data plus an identifier. id - The unique row identifier, needs to be an int from what I have found. cell - An array of the data for the grid. The ASP.Net MVC framework has the JsonResult response type which we can use to populate the jqGrid. As an example I created a Person model and a method to return some data: [csharp] public class Person { public int ID { get; set; } public string Name { get; set; } public DateTime Birthday { get; set; } } public I

Remote Controlled RoboTank

This is my version of the ever popular to build RoboTank. It uses an Arduino Mega 2560 with the AdaFruit motor shield and an XBee S1 to communicate to the DFRobot Gamepad. The sketch for the RoboTank makes use of the AFMotor.h to drive the motors and includes a serial parser to read and process the commands coming from the Gamepad. Robotank-Sketch.zip DFRobot Wireless Joystick

FileSystemWatcher With the BlockingCollection

While working with the FileSystemWatcher I found that if too many files were created the built in buffer will overflowed and files will be skipped.  After much research I found out about the Producer-Consumer Problem .  Then I found that .Net 4 has the BlockingCollection which helps solve the issue.  But how to use it with the FileSystemWatcher? On StackOverflow I found  Making PLINQ and BlockingCollection work together .  I'm not so interested in the PLINQ issue but this is a great example of using The BlockingCollection with FileSystemWatcher. [csharp] using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.IO; using System.Linq; using System.Threading; namespace ConsoleApplication4 {     public class Program     {         private const string Folder = "C:\\Temp\\InputData";         static void Main(string[] args) {             var cts = new CancellationTokenSource();             foreach (var obj in Input(cts.Token))