C#-文件只读时进行拷贝或删除报错, 对路径不允许访问
文件只讀時進行拷貝報錯,解決方法如下:
設置文件屬性為正常 然后在進行拷貝
/// <summary>
? ? ? ? /// 拷貝文件夾
? ? ? ? /// </summary>
? ? ? ? /// <param name="sourceDirectory"></param>
? ? ? ? /// <param name="targetDirectory"></param>
? ? ? ? public static bool DirectoryCopy(string sourceDirectory, string targetDirectory)
? ? ? ? {
? ? ? ? ? ? if (!Directory.Exists(sourceDirectory))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? return false;
? ? ? ? ? ? }
? ? ? ? ? ? if (!Directory.Exists(targetDirectory))
? ? ? ? ? ? {
? ? ? ? ? ? ? ? Directory.CreateDirectory(targetDirectory);
? ? ? ? ? ? }
? ? ? ? ? ? DirectoryInfo sourceInfo = new DirectoryInfo(sourceDirectory);
? ? ? ? ? ? //拷貝源路徑下的文件
? ? ? ? ? ? FileInfo[] fileInfo = sourceInfo.GetFiles();
? ? ? ? ? ? foreach (FileInfo fiTemp in fileInfo)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string sSrcFilePath = String.Format("{0}\\{1}", sourceDirectory, fiTemp.Name);
? ? ? ? ? ? ? ? string sTarFilePath = String.Format("{0}\\{1}", targetDirectory, fiTemp.Name);
? ? ? ? ? ? ? ? //去除文件的只讀屬性
? ? ? ? ? ? ? ? //System.IO.File.SetAttributes(sSrcFilePath, System.IO.FileAttributes.Normal);
? ? ? ? ? ? ? ? FileAttributes attributes = File.GetAttributes(sSrcFilePath);
? ? ? ? ? ? ? ? attributes = attributes & ~FileAttributes.ReadOnly;
? ? ? ? ? ? ? ? File.SetAttributes(sSrcFilePath, attributes);</span>
? ? ? ? ? ? ? ? File.Copy(sSrcFilePath, sTarFilePath, true);
? ? ? ? ? ? }
? ? ? ? ? ? //拷貝源路徑下的文件夾
? ? ? ? ? ? DirectoryInfo[] diInfo = sourceInfo.GetDirectories();
? ? ? ? ? ? foreach (DirectoryInfo diTemp in diInfo)
? ? ? ? ? ? {
? ? ? ? ? ? ? ? string sourcePath = diTemp.FullName;
? ? ? ? ? ? ? ? string targetPath = diTemp.FullName.Replace(sourceDirectory, targetDirectory);
? ? ? ? ? ? ? ? Directory.CreateDirectory(targetPath);
? ? ? ? ? ? ? ? DirectoryCopy(sourcePath, targetPath);
? ? ? ? ? ? }
? ? ? ? ? ? return true;
? ? ? ? }
?
總結
以上是生活随笔為你收集整理的C#-文件只读时进行拷贝或删除报错, 对路径不允许访问的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springbootajaxhas be
- 下一篇: @JsonSerialize 使用:注解