Thursday, December 9, 2010

Listing details of files and folders in a Directory in c#

You can get the list of files and folders in WIndows explorer or in a DOS promt. It's often useful to get content of a folder dynamically using some scripts or program, especially if you need this details in some application. Below is chunk of C# code which give you the details for files and folders of a given path. You can add additional fields to your out based on your need.

Make an executable file, i.e exe, and use it in your application or run it from command prompt. Results can be redirected to a text file or csv file.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace WinConsole
class ListFilesOfDirectory
public static long size = 0;
public static long totalSizeInMB = 0;
public static long maxSizeInMB = 0;

public static void listFiles(string path)

DirectoryInfo di = new DirectoryInfo(path);

DirectoryInfo[] folders = di.GetDirectories();

long[] listOfDir = new long[folders.Length];
int i=0;
foreach (DirectoryInfo d in folders)
size = 0;
listOfDir[i] = GetSizeOdDirectory(d);
i += 1;
totalSizeInMB += size / (1024 * 1024);
if (maxSizeInMB <>
maxSizeInMB = size / (1024 * 1024);
// display results in tab separated txt file
Console.WriteLine("File\t\t\t\t Size in MB");
for(int j=0;j
Console.WriteLine(folders[j].Name + "\t \t \t"+listOfDir[j].ToString());
// Console.ReadKey();

public static long GetSizeOdDirectory(DirectoryInfo directory)

DirectoryInfo[] dir = directory.GetDirectories();
foreach (DirectoryInfo d in dir)
FileInfo[] files = directory.GetFiles();
foreach (FileInfo f in files)
size += f.Length;
return size;
public static void Main(string[] args)
string path=args[0].ToString();


Friday, June 18, 2010

The server threw an exception. (Exception from HRESULT: 0x80010105 (RPC_E_SERVERFAULT)) MS Word automation solution

I was frustrated by this error every time i run below code. I did a lot of googleing nothing worked. Even Microsoft said its a know issue we don't recommend this.

Then later just to try I just put one try catch block and it worked perfect. Till date i have not seen that error.

Tuesday, May 25, 2010

Convert currency to word ( text ) in excel 2.0

Update: New version 3.0 has been released with bug fixes. 
Please see this link

Version 3.0

Thank you guys for reported bugs in the code (Convert currency to word in excel 1.0) in my earlier post Convert currency to word in excel.

Your comments helped me a lot in fixing this error. There is new version 2.0 which not only has bug fixes but also can convert up to 1,234,567,890.00.

You can Download the latest version (2.0) from

You can download the excel from

Keep commenting

Friday, March 5, 2010

Unlock and jail break iphones

The latest iPhone OS 3.1.3 firmware updates the Baseband of your iPhone 3GS and 3G hence making it impossible to unlock these device using BlackSn0w installed via BlackRa1n. Fortunately iPhone 2G users are on the safe side in case of unlock because iPhone 2G Baseband remain intact while updating to iPhone firmware 3.1.3 (provided that you have jailbroken it previously at least once).
MuscleNerd of the legendary Dev-team has confirmed that using RedSn0w 0.9.3 you can jailbreak iPhone OS 3.1.3 on the following devices:
  • jailbreak iPhone 3G 3.1.3 (but cannot unlock)
  • jailbreak iPhone 2G 3.1.3 (can unlock as well)
  • jailbreak iPod Touch 2G (non-MC model only)
  • jailbreak iPod Touch 1G
***Don’t go near this if you have 3GS, newer iPod Touch 2G, or any iPod Touch 3G
***if you depend on unlocking the iPhone, avoid this guide. The new Firmware 3.1.3 updates the Baseband to 05.12.01.
***So this guide is for iPhone 2G and those iPhone 3G users who do NOT care about unlocking.
***Read the guide first then try it at your own
Now that you’ve read the important part above, follow the simple step by step guide below to jailbreak iPhone 2G 3.1.3 firmware, jailbreak iPhone 3G 3.1.3 firmware (Don’t do it for iPhone 3G if you need an unlock though (really, don’t!)).

Jailbreak iPhone 3.1.3 Firmware

Step 1
Extracted the RedSn0w & Bootloaders archive and put the them and firmware IPSW files (iPhone firmware 3.1.3 and iPhone firmware 3.1.2) into a folder on your desktop.
Step 2
Open the iTunes, select your device from the left navigation pane.
Hold down the SHIFT key on Windows or ALT key on Mac and hit the Restore button in iTunes. Navigate to the downloaded firmware 3.1.3 for your device and select the firmware file (.ipsw) and hit Open.
iTunes will start restoring your iPhone firmware to iPhone OS 3.1.3.
Step 3
Once your iPhone is updates to OS 3.1.3, run the downloaded RedSn0w file.
Step 4
Hit the Browse button and provide it the downloaded firmware 3.1.2 file NOT 3.1.3 because RedSn0w 0.9.3 will not recognize iPhone OS 3.1.3.
Step 5
RedSn0w will verify your firmware file. Once done, hit the Next button.
Step 6 (for iPhone 2G users ONLY. Others please skip to Step 7)
To unlock iPhone 2G, select Install Cydia and Unlock options and provide the bootloader files.
If you just want to jailbreak iPhone 2G 3.1.3 then choose Install Cydia and hit next.
Step 7
On the next screen, check mark your desired options. For the purpose of this guide just choose Install Cydia and hit next. Select custom logos if you want them too. Hit Next.
Step 8
Read the on screen instructions to put your iPhone into DFU Mode.
Once you’ve entered into DFU Mode, RedSn0w will do its work and on successful completion, your iPhone will reboot.
You have successfully jailbreak iPhone 2G 3.1.3 and iPhone 3G 3.1.3.
We strongly recommend iPhone 3GS and 3G user to stay away from iPhone OS 3.1.3 until unless iPhone Dev Team or GeoHotz come up with updated jailbreak and unlock tool. However, you can alwaysjailbreak iPhone OS 3.1.2 using Custom FirmwareRedSn0wPwnageToolSn0wBreezeBlackRa1nand unlock iPhone OS 3.1.2 using UltraSn0w and BlackSn0w.
Disclaimer: Follow this guide on your own. I can’t be help responsible if ANYTHING goes wrong.
You can follow us to Twitter and Subscribed to RSS Feed to receive latest updates on jailbreak and unlocking stuff.

source :

Thursday, February 11, 2010

Convert currency to word in excel

There are plenty of online resources to convert Numeric currencies to Text- from $200 to Dollar Two Hundred.
But this is applicable only ###,###,### (comma at every third number)format.  This is not suitable for India numbering system, because we follow ##,##,###(....22,22,222) format.

So I have create a excel function to over come this. You can use this function to to convert number up to 10,00,00,000(ten crores).

How to do it

Open Excel

Press Alt + F11

From Menu Bar Insert Module

Copy paste the This Module there.

Exit from VBA window by pressing Alt + F11 again

In excel sheet, Insert Function,

Under user defined find ConvertCurrencyToEnglish 

select it and provide the number as a parameter

thats all you are done
Code (alternatively you can download the module from here)

' ****  Author                 : Krishna S
' ****  Tittle                    : Converting Hindu Arabic Currency(Indian System) to Words
' ****  Description          : This utility converts currencies in Indian numbering system to words.
' ****  Limitations           : Converts only upto 10,00,00,000( Ten Crores)

Function ConvertCurrencyToEnglish(ByVal MyNumber)
Dim Temp
         Dim Rupees, Paise
         Dim DecimalPlace, Count
         ReDim Place(9) As String
         Place(2) = " Thousand "
         Place(3) = " Lac "
         Place(4) = " Core "
      '   Place(5) = " Hundred Core "
         ' Convert MyNumber to a string, trimming extra spaces.
         MyNumber = Trim(Str(MyNumber))
         ' Find decimal place.
         DecimalPlace = InStr(MyNumber, ".")
         ' If we find decimal place...
         If DecimalPlace > 0 Then
            ' Convert Paise
            Temp = Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2)
            Paise = ConvertTens(Temp)
            ' Strip off Paise from remainder to convert.
            MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
         End If
         Count = 1
         Do While MyNumber <> ""
                 If Count = 1 Then
                   Temp = ConvertHundreds(Right(MyNumber, 3))
                    If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
                    If Len(MyNumber) > 3 Then
                       ' Remove last 3 converted digits from MyNumber.
                       MyNumber = Left(MyNumber, Len(MyNumber) - 3)
                       MyNumber = ""
                    End If
                    Count = Count + 1
                 ' Convert last 3 digits of MyNumber to English Rupees.
                 Temp = ConvertTens(Right(MyNumber, 2))
                    If Temp <> "" Then Rupees = Temp & Place(Count) & Rupees
                    If Len(MyNumber) > 3 Then
                       ' Remove last 3 converted digits from MyNumber.
                       MyNumber = Left(MyNumber, Len(MyNumber) - 2)
                       MyNumber = ""
                    End If
                    Count = Count + 1
                    End If
         ' Clean up Rupees.
         Select Case Rupees
            Case ""
               Rupees = ""
            Case "One"
               Rupees = "One Rupee"
            Case Else
               Rupees = Rupees & " Rupees"
         End Select
         ' Clean up Paise.
         Select Case Paise
            Case ""
               Paise = ""
            Case "One"
               Paise = " And One Cent"
            Case Else
               Paise = " And " & Paise & " Paise"
         End Select
         ConvertCurrencyToEnglish = Rupees & Paise
End Function
Private Function ConvertHundreds(ByVal MyNumber)
Dim Result As String
         ' Exit if there is nothing to convert.
         If Val(MyNumber) = 0 Then Exit Function
         ' Append leading zeros to number.
         MyNumber = Right("000" & MyNumber, 3)
         ' Do we have a hundreds place digit to convert?
         If Left(MyNumber, 1) <> "0" Then
            Result = ConvertDigit(Left(MyNumber, 1)) & " Hundred "
         End If
         ' Do we have a tens place digit to convert?
         If Mid(MyNumber, 2, 1) <> "0" Then
            Result = Result & ConvertTens(Mid(MyNumber, 2))
            ' If not, then convert the ones place digit.
            Result = Result & ConvertDigit(Mid(MyNumber, 3))
         End If
         ConvertHundreds = Trim(Result)
End Function
Private Function ConvertTens(ByVal MyTens)
Dim Result As String
         ' Is value between 10 and 19?
         If Val(Left(MyTens, 1)) = 1 Then
            Select Case Val(MyTens)
               Case 10: Result = "Ten"
               Case 11: Result = "Eleven"
               Case 12: Result = "Twelve"
               Case 13: Result = "Thirteen"
               Case 14: Result = "Fourteen"
               Case 15: Result = "Fifteen"
               Case 16: Result = "Sixteen"
               Case 17: Result = "Seventeen"
               Case 18: Result = "Eighteen"
               Case 19: Result = "Nineteen"
               Case Else
            End Select
            ' .. otherwise it's between 20 and 99.
            Select Case Val(Left(MyTens, 1))
               Case 2: Result = "Twenty "
               Case 3: Result = "Thirty "
               Case 4: Result = "Forty "
               Case 5: Result = "Fifty "
               Case 6: Result = "Sixty "
               Case 7: Result = "Seventy "
               Case 8: Result = "Eighty "
               Case 9: Result = "Ninety "
               Case Else
            End Select
            ' Convert ones place digit.
            Result = Result & ConvertDigit(Right(MyTens, 1))
         End If
         ConvertTens = Result
End Function
Private Function ConvertDigit(ByVal MyDigit)
Select Case Val(MyDigit)
            Case 1: ConvertDigit = "One"
            Case 2: ConvertDigit = "Two"
            Case 3: ConvertDigit = "Three"
            Case 4: ConvertDigit = "Four"
            Case 5: ConvertDigit = "Five"
            Case 6: ConvertDigit = "Six"
            Case 7: ConvertDigit = "Seven"
            Case 8: ConvertDigit = "Eight"
            Case 9: ConvertDigit = "Nine"
            Case Else: ConvertDigit = ""
         End Select
End Function

Looking to move from development to DevOps? Here is what you should know

DevOps is a buzz word in the last decade, everybody wants to try their luck in DevOps. DevOps is the most generic area of software engineeri...