Files
codeql/csharp/extractor/Semmle.Util/FileUtils.cs
2018-10-10 14:40:52 +01:00

55 lines
1.5 KiB
C#

using System.IO;
namespace Semmle.Util
{
public static class FileUtils
{
public static string ConvertToWindows(string path)
{
return path.Replace('/', '\\');
}
public static string ConvertToUnix(string path)
{
return path.Replace('\\', '/');
}
public static string ConvertToNative(string path)
{
return Path.DirectorySeparatorChar == '/' ?
path.Replace('\\', '/') :
path.Replace('/', '\\');
}
/// <summary>
/// Moves the source file to the destination, overwriting the destination file if
/// it exists already.
/// </summary>
/// <param name="src">Source file.</param>
/// <param name="dest">Target file.</param>
public static void MoveOrReplace(string src, string dest)
{
// Potential race condition here.
// .net offers the facility to either move a file, or to replace it.
File.Delete(dest);
File.Move(src, dest);
}
/// <summary>
/// Attempt to delete the given file (ignoring I/O exceptions).
/// </summary>
/// <param name="file">The file to delete.</param>
public static void TryDelete(string file)
{
try
{
File.Delete(file);
}
catch (IOException)
{
// Ignore
}
}
}
}