public static string MapServerPath(this HttpServerUtilityBase httpServerUtility, string localPath)
        {
            string domainRootLocalPath = httpServerUtility.MapPath("/");
            string relativeLocalPath   = ExtendedPath.GetRelativePath(domainRootLocalPath, localPath);
            string serverPath          = relativeLocalPath.Replace('\\', '/');

            return(serverPath);
        }
Example #2
0
        public static string GetExternalLinkFromLocalPath(string fullLocalPath, string baseLocalPath, string baseUrl)
        {
            var relativePath = ExtendedPath.GetRelativePath(baseLocalPath, fullLocalPath);
            var relativeUrl  = relativePath.Replace("\\", "/");
            var fullUrl      = UrlPath.Combine(baseUrl, relativeUrl);

            return(fullUrl);
        }
Example #3
0
        public static object ListObjectsFromFile(
            [ExcelArgument(Name = "path", Description = "The path", AllowReference = true)]
            object xlPath,
            [ExcelArgument(Name = "fileName", Description = "The file name", AllowReference = true)]
            object xlFileName,
            [ExcelArgument(Name = "fileFormat", Description = "[Optional] The file format; the file extension will be used by default", AllowReference = true)]
            object xlFileFormat)
        {
            try
            {
                IExcelDataQuery fileFormatDataQuery = ExcelDataQuery.Create(xlFileFormat, "File format");

                string          fileName;
                IObjectStreamer objectStreamer;

                if (fileFormatDataQuery.IsEmpty == true)
                {
                    fileName = GetFileName(xlPath, xlFileName, ObjectStreamer.GetFileExtensions());

                    if (ObjectStreamer.TryGetObjectStreamerByFileExtension(ExtendedPath.GetExtension(fileName), out objectStreamer) == false)
                    {
                        throw new ArgumentException("Invalid file extension '" + ExtendedPath.GetExtension(fileName) + "', used default file extensions or specify the file format.");
                    }
                }
                else
                {
                    if (fileFormatDataQuery.TryGetPoolValue <IObjectStreamer>(ObjectStreamer.TryGetObjectStreamer, out objectStreamer, dataAdvice: ExcelDataAdvice.Create(ObjectStreamer.GetNames())) == false)
                    {
                        throw new ArgumentException("Invalid file format " + fileFormatDataQuery.ToString(0, 0) + ".");
                    }
                    fileName = GetFileName(xlPath, xlFileName, objectStreamer.FileExtension);
                    fileFormatDataQuery.QueryCompleted();
                }

                StreamReader        streamReader       = new StreamReader(fileName);
                IObjectStreamReader objectStreamReader = objectStreamer.GetStreamReader(streamReader);

                var objectNames = ExcelPool.GetObjectNames(objectStreamReader);
                int n           = objectNames.Count();
                object[,] output = new object[n + 1, 2];
                output[0, 0]     = "Name";
                output[0, 1]     = "Type";
                int j = 1;
                foreach (var obj in objectNames)
                {
                    output[j, 0] = obj.Item2;
                    output[j, 1] = obj.Item1.Name.String;
                    j++;
                }
                objectStreamReader.Close();
                return(ExcelDataConverter.GetExcelRangeOutput(output));
            }
            catch (Exception e)
            {
                return(ExcelDataConverter.GetExcelRangeErrorMessage(e));
            }
        }
Example #4
0
        private string GetRequestLogFileName(string ip)
        {
            var fileName = $"{ip}";

            fileName  = ExtendedPath.GetRightFileNameFromString(fileName);
            fileName += ".txt";
            var fullFileName = Path.Combine(_logDir, fileName);

            return(fullFileName);
        }
Example #5
0
        protected void OpenFile()
        {
            //if (!File.Exists(_logFileName))
            //{
            //}
            int openingNewFileAttempts = 0;

tryToOpenFileAgain:
            try
            {
                _logFileStream = new StreamWriter(_logFileName, true, utf8Encoding);
                if (_writeLogMode == WriteLogOptions.LockAndFlushAfterEveryWrite)
                {
                    _logFileStream.AutoFlush = true;
                }
            }
            catch (DirectoryNotFoundException)
            {
                try
                {
                    string logDir = Path.GetDirectoryName(_logFileName);
                    Directory.CreateDirectory(logDir);
                    goto tryToOpenFileAgain;
                }
                catch { }
            }
            catch (SystemException systemException)
            {
                if (systemException is IOException ||
                    systemException is UnauthorizedAccessException ||
                    systemException is SecurityException)
                {
                    if (openingNewFileAttempts > 0)
                    {
                        return;
                    }

                    //string fileNameWithoutExt = Path.GetFileNameWithoutExtension(_logFileName);
                    //string fileExt = Path.GetExtension(_logFileName);
                    //int fileNameNumber;
                    //string fileNameExceptNumber;
                    //GetFileNameNumber(fileNameWithoutExt, out fileNameNumber, out fileNameExceptNumber);
                    //fileNameNumber++;
                    //_logFileName = string.Format("{0}({1}){2}", fileNameExceptNumber, fileNameNumber, fileExt);

                    _logFileName = ExtendedPath.GetIncrementedPath(_logFileName, "({0})");

                    if (!File.Exists(_logFileName))
                    {
                        openingNewFileAttempts++;
                    }
                    goto tryToOpenFileAgain;
                }
            }
        }
Example #6
0
        public static object LoadObjectsFromFile(
            [ExcelArgument(Name = "path", Description = "The path", AllowReference = true)]
            object xlPath,
            [ExcelArgument(Name = "fileName", Description = "The file name", AllowReference = true)]
            object xlFileName,
            [ExcelArgument(Name = "objectNames", Description = "[Optional] A list of object names to load; all objects will be loaded by default", AllowReference = true)]
            object xlObjectNames,
            [ExcelArgument(Name = "fileFormat", Description = "[Optional] The file format; the file extension will be used by default", AllowReference = true)]
            object xlFileFormat)
        {
            try
            {
                IExcelDataQuery fileFormatDataQuery = ExcelDataQuery.Create(xlFileFormat, "File format");

                string          fileName;
                IObjectStreamer objectStreamer;
                if (fileFormatDataQuery.IsEmpty == true)
                {
                    fileName = GetFileName(xlPath, xlFileName, ObjectStreamer.GetFileExtensions());

                    if (ObjectStreamer.TryGetObjectStreamerByFileExtension(ExtendedPath.GetExtension(fileName), out objectStreamer) == false)
                    {
                        throw new ArgumentException("Invalid file extension '" + Path.GetExtension(fileName) + "', used default file extensions or specify the file format.");
                    }
                }
                else
                {
                    if (fileFormatDataQuery.TryGetPoolValue <IObjectStreamer>(ObjectStreamer.TryGetObjectStreamer, out objectStreamer, dataAdvice: ExcelDataAdvice.Create(ObjectStreamer.GetNames())) == false)
                    {
                        throw new ArgumentException("Invalid file format " + fileFormatDataQuery.ToString(0, 0) + ".");
                    }
                    fileName = GetFileName(xlPath, xlFileName, objectStreamer.FileExtension);
                    fileFormatDataQuery.QueryCompleted();
                }

                IExcelDataQuery      objectNamesDataQuery = ExcelDataQuery.Create(xlObjectNames, "Object names");
                IEnumerable <string> objectNames          = objectNamesDataQuery.GetColumnVector <string>();
                objectNamesDataQuery.QueryCompleted();

                StreamReader        streamReader       = new StreamReader(fileName);
                IObjectStreamReader objectStreamReader = objectStreamer.GetStreamReader(streamReader);
                string infoMessage;
                IEnumerable <ExcelPoolItem> excelPoolItems;
                ExcelPool.TryLoadObjectsByName(objectStreamReader, objectNames, out infoMessage, out excelPoolItems);
                objectStreamReader.Close();

                return(infoMessage.ToTimeStampString());
            }
            catch (Exception e)
            {
                return(ExcelDataConverter.GetExcelRangeErrorMessage(e));
            }
        }
Example #7
0
        public static string GetExtension(string url)
        {
            int lastDotIndex = url.LastIndexOf('.');

            if (lastDotIndex == -1)
            {
                return(null);
            }

            var extension = url.Substring(lastDotIndex);

            if (ExtendedPath.ContainsInvalidFileNameChars(extension))
            {
                return(null);
            }
            return(extension);
        }
Example #8
0
        public virtual void LoadFromDisk(int depth = -1)
        {
            logger.Info("Loading Directory {0}", LocalPath);


            if (!Directory.Exists(this.LocalPath))
            {
                throw new DirectoryNotFoundException(String.Format("Directory '{0}' not found", LocalPath));
            }



            DirectoryInfo info = new DirectoryInfo(LocalPath);

            this.Name       = info.Name;
            this.Created    = info.CreationTimeUtc;
            this.LastEdited = info.LastWriteTimeUtc;


            //  ##  Update files    ##
            try
            {
                foreach (string item in Directory.GetFiles(LocalPath))
                {
                    string fileName = System.IO.Path.GetFileName(item);

                    if (files.ContainsKey(fileName))
                    {
                        files[fileName].LoadFromDisk();
                    }
                    else
                    {
                        FileObject newFile = new FileObject();
                        newFile.Name      = fileName;
                        newFile.LocalPath = item;
                        AddFile(newFile);
                        newFile.LoadFromDisk();
                    }
                }
            }
            catch (DirectoryNotFoundException)
            {
                files = new Dictionary <string, FileObject>();
            }



            //TODO test if this really works!
            files.Values.Where(x => !File.Exists(LocalPath)).Select(x => files.Remove(x.Name));

            //  ##  Update directories ##
            try
            {
                foreach (string item in Directory.GetDirectories(LocalPath))
                {
                    try
                    {
                        string dirName = ExtendedPath.GetDirectoryName(item);

                        if (!directories.ContainsKey(dirName))
                        {
                            DirectoryObject newDir = new DirectoryObject();

                            newDir.Name      = dirName;
                            newDir.LocalPath = item;

                            if (depth > 1 || depth < 0)
                            {
                                newDir.LoadFromDisk(depth - 1);
                            }

                            AddDirectory(newDir);
                        }
                    }
                    catch (IOException)
                    {
                    }
                }
            }
            catch (DirectoryNotFoundException)
            {
                directories = new Dictionary <string, DirectoryObject>();
            }


            directories.Values.Where(x => !Directory.Exists(x.LocalPath)).Select(x => directories.Remove(x.Name));
            directories.Values.Select(x => { x.LoadFromDisk(); return(x); });
        }
Example #9
0
 public void TestMethod()
 {
     var p = ExtendedPath.GetPath(@"test.txt\some\test.txt");
 }