您的位置:68399皇家赌场 > 集群主机 > 对 File.Delete 方法的一点观念

对 File.Delete 方法的一点观念

发布时间:2019-05-12 14:27编辑:集群主机浏览(157)

    参数

    path
    Type: System.String.aspx)

    要反省的文件。

    返回值

    若是调用方具备须求的权限并且 true 包罗现存文件的名称,则为 path;否则为 false。 如果 false 为 path(3个空头路线或零长度字符串),则此方法也将重回 null。 要是调用方不富有读取钦定文件所需的足足权限,则不吸引那些并且该方法再次回到 false,这与 path 是或不是留存非亲非故。

    1、判定当地文件是或不是留存代码:

            static void Main(string[] args)
            {
                string path = "C:/Users/lenovo/Desktop/test.jpg";
    
                if (System.IO.File.Exists(path))
    
                { Console.WriteLine("本地文件确实存在!"); }
    
                else
    
                { Console.WriteLine("本地文件不存在!"); }
                Console.ReadKey();
    
            }
    

    重中之重是通过System.IO.FIle对象的Exists方法来开始展览判别。

    2、判别网络文件是不是留存代码:

    互连网地址→请求对象→推断响应状态是否为200。

            static void Main(string[] args)
            {
                string url = @"https://www.baidu.com/test.png";//网络文件地址
                if (JudgeFileExist(url))
                { Console.WriteLine("网络文件确实存在!"); }
                else
                { Console.WriteLine("网络文件不存在!"); }
                Console.ReadKey();
            }
            private static bool JudgeFileExist(string url)
            {
                try
                {
                    //创建根据网络地址的请求对象
                    System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.CreateDefault(new Uri(url));
                    httpWebRequest.Method = "HEAD";
                    httpWebRequest.Timeout = 1000;
                    //返回响应状态是否是成功比较的布尔值
                    return (((System.Net.HttpWebResponse)httpWebRequest.GetResponse()).StatusCode == System.Net.HttpStatusCode.OK);
                }
                catch
                {
                    return false;
                }
            }
    

     

    File.Exists 方法(String) 分明钦定的文书是不是留存。 命名空间: System.IO 程序集: mscorlib(位于...

    请输入要刨除的文书名: -this-string's-length-is-24玖-

    命名空间:   System.IO.aspx)
    皇家赌场,程序集:  mscorlib(位于 mscorlib.dll)

    C#推断当麻芋果件,互连网文件是不是留存是还是不是存在,

    规定钦定的文件是或不是存在。

    命名空间:   System.IO
    程序集:  mscorlib(位于 mscorlib.dll)

    请输入要刨除的文件名:
    错误: System.ArgumentException: 路子的款式违规。
       在 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
       在 System.IO.Path.GetFullPathInternal(String path)
       在 System.IO.File.Delete(String path)
       在 Test.Main(String[] args)

    返回值

    Type: System.Boolean.aspx)

    倘使调用方具备须要的权能并且 true 包蕴现存文件的称谓,则为 path;否则为 false。 如果 false 为 path(1个失效路线或零长度字符串),则此措施也将赶回 null。 假如调用方不具备读取钦定文件所需的够用权限,则不吸引那二个并且该方式重回 false,这与 path 是不是留存非亲非故。

    壹、决断当守田件是不是存在代码:

            static void Main(string[] args)
            {
                string path = "C:/Users/lenovo/Desktop/test.jpg";
    
                if (System.IO.File.Exists(path))
    
                { Console.WriteLine("本地文件确实存在!"); }
    
                else
    
                { Console.WriteLine("本地文件不存在!"); }
                Console.ReadKey();
    
            }
    

    要害是透过System.IO.FIle对象的Exists方法来拓展判断。

    二、判定互联网文件是还是不是留存代码:

    网络地址→请求对象→决断响应状态是否为200。

            static void Main(string[] args)
            {
                string url = @"https://www.baidu.com/test.png";//网络文件地址
                if (JudgeFileExist(url))
                { Console.WriteLine("网络文件确实存在!"); }
                else
                { Console.WriteLine("网络文件不存在!"); }
                Console.ReadKey();
            }
            private static bool JudgeFileExist(string url)
            {
                try
                {
                    //创建根据网络地址的请求对象
                    System.Net.HttpWebRequest httpWebRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.CreateDefault(new Uri(url));
                    httpWebRequest.Method = "HEAD";
                    httpWebRequest.Timeout = 1000;
                    //返回响应状态是否是成功比较的布尔值
                    return (((System.Net.HttpWebResponse)httpWebRequest.GetResponse()).StatusCode == System.Net.HttpStatusCode.OK);
                }
                catch
                {
                    return false;
                }
            }
    

     

    参数

    path
    Type: System.String

    要检查的文本。

    正值使用的文件

    分明钦赐的文本是还是不是存在。

    点名的渠道无效(比如,它身处未映射的驱动器上)。

    请输入要刨除的公文名: \za.txt
    错误: System.IO.IOException: 找不到互连网路线。

         在自个儿写的“推箱子”程序的 DataFile 类中有上面这么3个办法:

    path 为空引用(在 Visual Basic 中为 Nothing)。

    请输入要去除的文本名: readonly.file
    错误: System.UnauthorizedAccessException: 对路径“D:CSworkreadonly.file”的造访被拒绝。
       在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       在 System.IO.File.Delete(String path)
       在 Test.Main(String[] args)

    特别类型

    ArgumentException

    请输入要去除的文件名: -this-string's-length-is-249-
    错误: System.IO.PathTooLongException: 钦命的不二等秘书诀或文件名太长,大概双方都太长。完全限定文件名必须少于 260个字符,并且目录名必须少于 248 个字符。
       在 System.IO.Path.NormalizePathFast(String path, Boolean fullCheck)
       在 System.IO.Path.GetFullPathInternal(String path)
       在 System.IO.File.Delete(String path)
       在 Test.Main(String[] args)

    条件

    备注允许 path 参数钦点相对或相对路线音讯。相对路径音讯被分解为相对于当前工作目录。若要获取当前职业目录,请参见 GetCurrentDirectory。

        可以见见,假诺先调用 File.Exists 方法决断一下点名的文本是还是不是存在再决定是不是调用 File.Delete 方法,则单独在“钦点的文件正在接纳中”和“钦点一个只读文件”那二种状态下会抓住这个。而1旦一直调用 File.Delete 方法,则在“钦点的公文不设有”的处境下不抓住那些,不过在“钦赐的门道无效”的境况下会抓住那多少个。
        实际上,我感觉,“钦定的路子无效”应该也算“钦定的文件不存在”的一种情景。所以,FCL 中的 File.Delete 方法要是按以下规则举行统一筹算则对开采职员更为和谐:
        一. File.Delete 办法在“钦赐的文本不存在”时引发 FileNotFoundException 十分。
        二. File.Delete 格局在“钦赐的文本不存在”和“钦命的门路无效”时不抓住这几个。
        作者更倾向于第壹种方案。那样,在大部景况下,就可以直接调用 File.Delete 方法,而不用先调用 File.Exists 方法。

    请输入要去除的文件名: test.exe
    错误: System.UnauthorizedAccessException: 对路径“D:CSworktest.exe”的拜访被拒绝。
       在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       在 System.IO.File.Delete(String path)
       在 Test.Main(String[] args)

    取名空间:  System.IO
    程序集:  mscorlib(在 mscorlib.dll 中)

    UnauthorizedAccessException

    空引用

    请输入要去除的文本名: null

    请输入要去除的文件名: none.file

    语法public static bool Exists (
      string path
    )

    语法public static void Delete (
      string path
    )

        /// <summary>
        ///  删除通过海关手续文件
        /// </summary>
        /// <param name="level">关数</param>
        private void DeleteStepsFile(int level)
        {
          // 纵然 File.Delete(): 删除钦点的文书。若是钦赐的文本不存在,则不迷惑那2个。 
          // 但是: 借使钦赐的门道无效,如故会吸引 DirectoryNotFoundException 至极。
          // 所以须求先用 File.Exists() 决断一下文书是还是不是存在
          string name = GetStepsFileName(fileName, level);
          if (File.Exists(name)) File.Delete(name);
        }


    请输入要刨除的公文名: readwrite贰.file
    File.Delete 成功

    File.Exists 方法 (System.IO)
    明确钦点的文书是或不是存在。

    文本名太长

    path 是三个零长度字符串,仅包括空白或许隐含三个或五个由 InvalidPathChars 定义的不算字符。

    请输入要去除的文本名: D:CS
    错误: System.UnauthorizedAccessException: 对路径“D:CS”的走访被驳回。
       在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       在 System.IO.File.Delete(String path)
       在 Test.Main(String[] args)

    本文由68399皇家赌场发布于集群主机,转载请注明出处:对 File.Delete 方法的一点观念

    关键词: 68399皇家赌场 .NET Framewo