49R Ответов: 3

Как открыть файл в C#


как открыть файл со строковыми значениями

Что я уже пробовал:

<pre>string c = string.Empty;
        string s = string.Empty;
        string ex = string.Empty;


например, c="sg" ,s ="g",ex="FA1"

тогда как связать c,s,ex

xxx = @"C:\how\c\s\ex.xlsx";

приведенное выше показывает ошибку, потому что оно открывает, как,с,с,ex.xlsx в диск C

BillWoodruff

какая ошибка ? вы собираетесь создать файл, или он уже существует ?

3 Ответов

Рейтинг:
5

BillWoodruff

Я использую это для построения путей к файлам. Он используется вот так:

var pathtest = ".xslx".GetFilePath("C:", "how", "c", "s", "ex");
using System;
using System.IO;
using System.Text;

namespace YourNameSpace
{
    public static class FileExtensions
    {
        private static StringBuilder sb = new StringBuilder();

        private static char pathdelimiter = '\\';

        public static string GetFilePath(this string extension, params string[] pathElements)
        {
            sb.Clear();

            string path = null;

            int last = pathElements.Length - 1;

            for (int i = 0; i < last; i++)
            {
                sb.Append(pathElements[i]);
                sb.Append(pathdelimiter);
            }

            sb.Append(pathElements[last]);
            sb.Append(extension);

            try
            { 
                path = Path.GetFullPath(sb.ToString());
            }
            catch (Exception e)
            {
                switch (e.GetType().Name)
                {
                    case "NotSupportedException":
                        throw new ArgumentException(@"extension or path elements misuse a colon", e.InnerException);

                    case "ArgumentNullException":
                            throw new ArgumentNullException(@"extension or path elements are null", e.InnerException);

                    case "InvalidCastException": 
                        throw new ArgumentException(@"extension or path elements contain invalid characters", e.InnerException);

                    case "SecurityException":
                        throw new ArgumentException(@"No access to that location", e.InnerException);

                    case "PathTooLongException":
                        throw new ArgumentException(@"path is too longn", e.InnerException);
                }
            }

            return path;
        }
    }
}


Рейтинг:
27

Richard MacCutchan

Пожалуйста, попробуйте провести небольшое исследование для себя: c# path combine - поиск в Google[^]


Рейтинг:
0

49R

большое тебе спасибо Ричарт
я пытался

 string path1 = "C:\\how\\" +c + "\\" + s + "\\" + ex + ".xlsx";
xxx = path1;