Pages

Friday, May 27, 2016

C# - How to get file Properties and insert into SQL Server table by using C Sharp

You are working as C# developer, you need to write a program that can read file's information such as

  •   FolderPath
  •   FileName
  •   LastWriteTime
  •   CreateTime
  •   FileSizeinKB


from a table and write into SQL Server table. Also as part of file information , you would like to insert folder from which we are reading the file properties.


Step 1: 
First of all you need to create a table in SQL Server database in which you would like to insert file information.

CREATE TABLE [dbo].[FileInformation](
id int identity(1,1),
FolderPath VARCHAR(255),
FileName VARCHAR(255),
[LastWriteTime] DateTime,
[CreateTime] Datetime,
FileSizeinKB Int)


Step 2:
Create new Project and then choose Console Application and use below script.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Data.SqlClient;

namespace _01_WriteFileProperitestoTable
{
    class Program
    {
        static void Main(string[] args)
        {
            //Declare Variable and set value,Provide the folder which contains files
            string VarDirectoryPath = "C:\\Source\\";
            //Create Connection to SQL Server
            SqlConnection SQLConnection = new SqlConnection();
            SQLConnection.ConnectionString= "Data Source = (local); Initial Catalog =TechBrothersIT; "
               + "Integrated Security=true;";

            //get all files from directory or folder to get file's information
            string[] files = Directory.GetFiles(VarDirectoryPath);
            SqlCommand SqlCmd = new SqlCommand();
            SqlCmd.Connection = SQLConnection;
            SQLConnection.Open();

            //loop through files
            foreach (string filename in files)
            {

                FileInfo file = new FileInfo(filename);

SqlCmd.CommandText = "Insert into dbo.FileInformation(";
SqlCmd.CommandText += "[FolderPath],[FileName],[LastWriteTime],[CreateTime],[FileSizeinKB])";
SqlCmd.CommandText +=" Values('"
                  + VarDirectoryPath + "','"
                  + file.Name + "','"
                  + file.LastWriteTime + "','"
                 + file.CreationTime 
                 + "','" + file.Length / 1024 
                 + "')";
                 SqlCmd.ExecuteNonQuery();
            }
            SQLConnection.Close();
        }
    }
}

Save the script and then execute. It should read the file properties from the folder you have given and insert into SQL Server Table.

No comments:

Post a Comment