Neue Version mit Mutex

This commit is contained in:
BlubbFish 2017-03-09 19:58:12 +00:00
parent e347e00827
commit ca97ec2106
4 changed files with 53 additions and 3 deletions

49
FileMutex.cs Normal file
View File

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace BlubbFish.Utils {
public class FileMutex {
private static FileMutex instance;
private String filename;
private StreamWriter file;
private FileMutex() { }
public static FileMutex Instance {
get {
if(FileMutex.instance == null) {
FileMutex.instance = new FileMutex();
}
return FileMutex.instance;
}
}
public void setName(string name) {
string path = AppDomain.CurrentDomain.BaseDirectory;
this.filename = path + string.Join(string.Empty, Array.ConvertAll(new SHA512Managed().ComputeHash(Encoding.UTF8.GetBytes(name)), b => b.ToString("X2"))) + ".lock.txt";
}
public bool create() {
if(File.Exists(this.filename))
return false;
this.file = new StreamWriter(this.filename);
this.initFile();
return File.Exists(this.filename) && file != null;
}
private void initFile() {
this.file.Write("Created: " + DateTime.Now.ToUniversalTime()+"\n");
this.file.Flush();
}
public bool delete() {
this.file.Close();
File.Delete(this.filename);
return !File.Exists(this.filename);
}
}
}

View File

@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Utils")]
[assembly: AssemblyCopyright("Copyright © 2014 - 03.12.2016")]
[assembly: AssemblyCopyright("Copyright © 2014 - 03.03.2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern
// übernehmen, indem Sie "*" eingeben:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.1")]
[assembly: AssemblyFileVersion("1.0.0.1")]
[assembly: AssemblyVersion("1.0.2.1")]
[assembly: AssemblyFileVersion("1.0.2.1")]

View File

@ -42,6 +42,7 @@
<ItemGroup>
<Compile Include="CmdArgs.cs" />
<Compile Include="FileLogger.cs" />
<Compile Include="FileMutex.cs" />
<Compile Include="InIReader.cs" />
<Compile Include="OwnController.cs" />
<Compile Include="OwnModel.cs" />

Binary file not shown.