Any best approach to change my shitty coding ?

Hi All,

I was using Make directory to create a folders and subfolder in my ftp (using filezilla) works fine,but when i try to do in my test server (IIS FTP) doesn't work ,throws 550,file not found or no access.so just a quick way to change the code to create subdirctory in my ftp server works fine but i know its a kinda shitty way to do like that.

Some one please advice the second thought to approach.

 
   string path = "ftp://1.1.1.1/media/times/" + Name + "/test/fileName";
            string[] pathsplit = path.ToString().Split('/');
            string Firstpath = pathsplit[0] + "/" + pathsplit[1] + "/" + pathsplit[2] + "/" + pathsplit[3];
            string SecondPath = Firstpath + "/" + pathsplit[4];
            string ThirdPath = SecondPath + "/" + pathsplit[5];
            int count = pathsplit.Count();


            try
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(path);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                request.Credentials = new NetworkCredential("sh", "se");
                using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
                {
                    // Okay.  
                    upload();
                }
            }
            catch (WebException ex)
            {
                try
                {
                   //create the first directory if its not there
                   //If already there call the catch
                    FtpWebRequest createdir = (FtpWebRequest)FtpWebRequest.Create(new Uri(Firstpath));
                    createdir.Method = WebRequestMethods.Ftp.MakeDirectory;
                    createdir.Credentials = new NetworkCredential("sh", "se");
                    createdir.UsePassive = true;
                    createdir.UseBinary = true;
                    createdir.KeepAlive = false;
                    FtpWebResponse response1 = (FtpWebResponse)createdir.GetResponse();
                    Stream ftpStream1 = response1.GetResponseStream();
                    ftpStream1.Close();
                    response1.Close();
                }
                catch (Exception e)
                {
                    try
                    {
                       //create the second directory if its not there
                       //If already there call the catch
                        FtpWebRequest createdir = (FtpWebRequest)FtpWebRequest.Create(new Uri(SecondPath));
                        createdir.Method = WebRequestMethods.Ftp.MakeDirectory;
                        createdir.Credentials = new NetworkCredential("sh", "se");
                        createdir.UsePassive = true;
                        createdir.UseBinary = true;
                        createdir.KeepAlive = false;
                        FtpWebResponse response1 = (FtpWebResponse)createdir.GetResponse();
                        Stream ftpStream1 = response1.GetResponseStream();
                        ftpStream1.Close();
                        response1.Close();
                    }
                    catch (Exception el)
                    {
                        try
                        {
   							//create the third directory if its not there
                   //If already there call the catch
                            FtpWebRequest createdir = (FtpWebRequest)FtpWebRequest.Create(new Uri(ThirdPath));
                            createdir.Method = WebRequestMethods.Ftp.MakeDirectory;
                            createdir.Credentials = new NetworkCredential("sh", "se");
                            createdir.UsePassive = true;
                            createdir.UseBinary = true;
                            createdir.KeepAlive = false;
                            FtpWebResponse response1 = (FtpWebResponse)createdir.GetResponse();
                            Stream ftpStream1 = response1.GetResponseStream();
                            ftpStream1.Close();
                            response1.Close();
                        }
                        catch
                        { }
                    
                    }
                }

                if (ex.Response != null)
                {
                    FtpWebResponse response = (FtpWebResponse)ex.Response;
                    if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
                    {
                        // Directory not found.  
                    }
                }
            } 

Open in new window

Sha1395Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Miguel OzSoftware EngineerCommented:
It looks more like you may have permissions issues in your server.
Please follow the comments on the link about how to use audit and process monitor
http://forums.iis.net/t/1149116.aspx
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Srinivasulu MuppalaLead DeveloperCommented:
0
Sha1395Author Commented:
Hi srinipro,

i don't have issue to upload,i have an issue to create sub dir.
0
Sha1395Author Commented:
@mas_oz2003,

Thank you so much for your comment,am still working with network people based on your suggestion to inherit the permission to all the subfolders.

Thanks Again.
0
Sha1395Author Commented:
Changed my code little bit,this looks some how better than previous,still looking for an expert comment to do this more efficient.

		var dir = new ConsoleApplication5.Program();
            string path = "ftp://1.1.1.1/testsvr01/times/" + "testfile" + "/svr01/fileName";
            string[] pathsplit = path.ToString().Split('/');
            string Firstpath = pathsplit[0] + "/" + pathsplit[1] + "/" + pathsplit[2] + "/" + pathsplit[3] + "/";
            string SecondPath = Firstpath + "/" + pathsplit[4] + "/";
            string ThirdPath = SecondPath + "/" + pathsplit[5] + "/";
            string[] paths = { Firstpath, SecondPath, ThirdPath };
            foreach (string pat in paths)
            {
               bool result= dir.EnsureDirectoryExists(pat);

                if (result==true)
                {
                    //do nothing
                }
                else
                {   //create dir
                    dir.createdir(pat);
                }
            }
            upload(path,filename);

        }
        private bool EnsureDirectoryExists(string pat)
        {

            try
            {
                //call the method the first path is exist ?
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(pat);
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                request.Credentials = new NetworkCredential("sh", "se");
                using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
                {
                    return true;
                }
            }
            catch (Exception ex)
            { return false; }

        }
        public void createdir(string pat)
        {
            try
            {
                FtpWebRequest createdir = (FtpWebRequest)FtpWebRequest.Create(new Uri(pat));
                createdir.Method = WebRequestMethods.Ftp.MakeDirectory;
                createdir.Credentials = new NetworkCredential("sh", "se");
                createdir.UsePassive = true;
                createdir.UseBinary = true;
                createdir.KeepAlive = false;
                FtpWebResponse response1 = (FtpWebResponse)createdir.GetResponse();
                Stream ftpStream1 = response1.GetResponseStream();
                ftpStream1.Close();
                response1.Close();
            }
            catch (Exception ex)
            {
            }

        }

Open in new window

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
C#

From novice to tech pro — start learning today.