public static bool Exists(string path) { if (unix.IsUnix) { return(System.IO.File.Exists(path)); } string fixPath = NameFix.AddLongPathPrefix(path); Win32Native.WIN32_FILE_ATTRIBUTE_DATA wIn32FileAttributeData = new Win32Native.WIN32_FILE_ATTRIBUTE_DATA(); bool b = Win32Native.GetFileAttributesEx(fixPath, 0, ref wIn32FileAttributeData); return(b && (wIn32FileAttributeData.fileAttributes & Win32Native.FILE_ATTRIBUTE_DIRECTORY) == 0); }
public FileInfo(string path) { FullName = path; Name = Path.GetFileName(path); System.IO.FileInfo fi = new System.IO.FileInfo(NameFix.AddLongPathPrefix(path)); if (!fi.Exists) { return; } Length = fi.Length; LastWriteTime = fi.LastWriteTimeUtc.Ticks; LastAccessTime = fi.LastAccessTimeUtc.Ticks; CreationTime = fi.CreationTimeUtc.Ticks; }
public static void Move(string sourceDirName, string destDirName) { if (unix.IsUnix) { System.IO.Directory.Move(sourceDirName, destDirName); return; } if (sourceDirName == null) { throw new ArgumentNullException("sourceDirName"); } if (sourceDirName.Length == 0) { throw new ArgumentException("Argument_EmptyFileName", "sourceDirName"); } if (destDirName == null) { throw new ArgumentNullException("destDirName"); } if (destDirName.Length == 0) { throw new ArgumentException("Argument_EmptyFileName", "destDirName"); } string fullsourceDirName = NameFix.AddLongPathPrefix(sourceDirName); string fulldestDirName = NameFix.AddLongPathPrefix(destDirName); if (!Win32Native.MoveFile(fullsourceDirName, fulldestDirName)) { int hr = Marshal.GetLastWin32Error(); if (hr == Win32Native.ERROR_FILE_NOT_FOUND) // Source dir not found { throw new Exception("ERROR_PATH_NOT_FOUND " + fullsourceDirName); } if (hr == Win32Native.ERROR_ACCESS_DENIED) // WinNT throws IOException. This check is for Win9x. We can't change it for backcomp. { throw new Exception("UnauthorizedAccess_IODenied_Path" + sourceDirName); } } }
public static bool SetAttributes(string path, FileAttributes fileAttributes) { if (unix.IsUnix) { try { System.IO.File.SetAttributes(path, (System.IO.FileAttributes)fileAttributes); return(true); } catch (Exception) { return(false); } } string fullPath = NameFix.AddLongPathPrefix(path); return(Win32Native.SetFileAttributes(fullPath, (int)fileAttributes)); }
public static void Delete(string path) { if (unix.IsUnix) { System.IO.File.Delete(path); return; } string fixPath = NameFix.AddLongPathPrefix(path); if (!Win32Native.DeleteFile(fixPath)) { int hr = Marshal.GetLastWin32Error(); if (hr != Win32Native.ERROR_FILE_NOT_FOUND) { throw new Exception(GetErrorCode(hr), new Exception("ERROR_DELETING_FILE. (" + path + ")")); } } }
public static void Delete(String path) { if (unix.IsUnix) { System.IO.File.Delete(path); return; } string fixPath = NameFix.AddLongPathPrefix(path); if (!Win32Native.DeleteFile(fixPath)) { int hr = Marshal.GetLastWin32Error(); if (hr != Win32Native.ERROR_FILE_NOT_FOUND) { throw new Exception("Error while deleting file :" + path); } } }
public static void CreateDirectory(string path) { if (unix.IsUnix) { System.IO.Directory.CreateDirectory(path); return; } if (path == null) { throw new ArgumentNullException("path"); } if (path.Length == 0) { throw new ArgumentException("Argument_PathEmpty"); } string fullPath = NameFix.AddLongPathPrefix(path); Win32Native.CreateDirectory(fullPath, IntPtr.Zero); }
public FileInfo[] GetFiles(string SearchPattern = "*") { List <FileInfo> files = new List <FileInfo>(); try { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(NameFix.AddLongPathPrefix(FullName)); if (!di.Exists) { return(files.ToArray()); } System.IO.FileInfo[] arrDi = di.GetFiles(SearchPattern); foreach (System.IO.FileInfo tDi in arrDi) { try { FileInfo lFi = new FileInfo { Name = tDi.Name, FullName = Path.Combine(FullName, tDi.Name), Length = tDi.Length }; try { lFi.LastWriteTime = tDi.LastWriteTimeUtc.Ticks; } catch { lFi.LastWriteTime = 0; } try { lFi.LastAccessTime = tDi.LastAccessTimeUtc.Ticks; } catch { lFi.LastWriteTime = 0; } try { lFi.CreationTime = tDi.CreationTimeUtc.Ticks; } catch { lFi.LastWriteTime = 0; } files.Add(lFi); } catch { } } } catch { } return(files.ToArray()); }
public DirectoryInfo[] GetDirectories() { List <DirectoryInfo> dirs = new List <DirectoryInfo>(); try { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(NameFix.AddLongPathPrefix(FullName)); if (!di.Exists) { return(dirs.ToArray()); } System.IO.DirectoryInfo[] arrDi = di.GetDirectories(); foreach (System.IO.DirectoryInfo tDi in arrDi) { try { DirectoryInfo lDi = new DirectoryInfo { Name = tDi.Name, FullName = Path.Combine(FullName, tDi.Name) }; try { lDi.LastWriteTime = tDi.LastWriteTimeUtc.Ticks; } catch { lDi.LastWriteTime = 0; } try { lDi.LastAccessTime = tDi.LastAccessTimeUtc.Ticks; } catch { lDi.LastWriteTime = 0; } try { lDi.CreationTime = tDi.CreationTimeUtc.Ticks; } catch { lDi.LastWriteTime = 0; } dirs.Add(lDi); } catch { } } } catch { } return(dirs.ToArray()); }
public DirectoryInfo[] GetDirectories(string SearchPattern, bool includeHidden = true) { List <DirectoryInfo> dirs = new List <DirectoryInfo>(); if (unix.IsUnix) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(FullName); System.IO.DirectoryInfo[] arrDi = di.GetDirectories(SearchPattern); foreach (System.IO.DirectoryInfo tDi in arrDi) { DirectoryInfo lDi = new DirectoryInfo { Name = tDi.Name, FullName = Path.Combine(FullName, tDi.Name), LastWriteTime = tDi.LastWriteTimeUtc.Ticks }; dirs.Add(lDi); } return(dirs.ToArray()); } string dirName = NameFix.AddLongPathPrefix(FullName); Win32Native.WIN32_FIND_DATA findData = new Win32Native.WIN32_FIND_DATA(); SafeFindHandle findHandle = Win32Native.FindFirstFile(dirName + @"\" + SearchPattern, findData); if (!findHandle.IsInvalid) { do { string currentFileName = findData.cFileName; // if this is a directory, find its contents if ((findData.dwFileAttributes & Win32Native.FILE_ATTRIBUTE_DIRECTORY) == 0) { continue; } if (currentFileName == "." || currentFileName == "..") { continue; } if (!includeHidden && (findData.dwFileAttributes & Win32Native.FILE_ATTRIBUTE_HIDDEN) != 0) { continue; } DirectoryInfo di = new DirectoryInfo { Name = currentFileName, FullName = Path.Combine(FullName, currentFileName), LastWriteTime = Convert.Time(findData.ftLastWriteTimeHigh, findData.ftLastWriteTimeLow) }; dirs.Add(di); }while (Win32Native.FindNextFile(findHandle, findData)); } // close the find handle findHandle.Dispose(); return(dirs.ToArray()); }
public static void Delete(string path) { System.IO.File.Delete(NameFix.AddLongPathPrefix(path)); }
public static void Move(string sourceFileName, string destFileName) { System.IO.File.Move(NameFix.AddLongPathPrefix(sourceFileName), NameFix.AddLongPathPrefix(destFileName)); }
public static void Copy(string sourceFileName, string destFileName, bool overwrite) { System.IO.File.Copy(NameFix.AddLongPathPrefix(sourceFileName), NameFix.AddLongPathPrefix(destFileName), overwrite); }
public static bool Exists(string path) { return(System.IO.File.Exists(NameFix.AddLongPathPrefix(path))); }
public static void CreateDirectory(string path) { System.IO.Directory.CreateDirectory(NameFix.AddLongPathPrefix(path)); }
public static void Move(string sourceDirName, string destDirName) { System.IO.Directory.Move(NameFix.AddLongPathPrefix(sourceDirName), NameFix.AddLongPathPrefix(destDirName)); }