2016-09-29 24 views
0

私は今、しばらく時間を探していて、これを見つけることができませんでした。私のプログラムは、複数のユーザーからのファイルの書き込みや更新を行うように設定できますが、フォルダ内の内容を読み取るグループは1つだけです。フォルダへのアクセス許可

class Log_File 
    { 
    string LogFileDirectory = @"\\server\boiseit$\TechDocs\Headset Tracker\Weekly Charges\Log\Log Files"; 
    string PathToXMLFile = @"\\server\boiseit$\scripts\Mikes Projects\Headset-tracker\config\Config.xml"; 
    string AdditionToLogFile = @"\Who.Did.It_" + DateTime.Now.Month + "-" + DateTime.Now.Day + "-" + DateTime.Now.Year + ".txt"; 
    XML XMLFile = new XML(); 

public void ConfigCheck() 
    { 
     if (!File.Exists(PathToXMLFile)) 
     { 
     XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
     } 
    } 
public void CreateLogFile() 
    { 

     if (Directory.GetFiles(LogFileDirectory).Count() == 0) 
     { 
      XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
      CreateFileOrAppend(""); 
     } 
     else if (!File.Exists(XMLFile.readingXML(PathToXMLFile))) 
     { 
      XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
      CreateFileOrAppend(""); 
     } 
     else 
     { 
      FileInfo dateOfLastLogFile = new FileInfo(XMLFile.readingXML(PathToXMLFile)); 
      DateTime dateOfCreation = dateOfLastLogFile.CreationTime; 

      if (dateOfLastLogFile.CreationTime <= DateTime.Now.AddMonths(-1)) 
      { 
       XMLFile.writeToXML(PathToXMLFile, LogFileDirectory + AdditionToLogFile); 
       CreateFileOrAppend(""); 
      } 
     } 

    } 

    public void CreateFileOrAppend(string whoDidIt) 
    { 
     using (IsolatedStorageFile storage = IsolatedStorageFile.GetStore((IsolatedStorageScope.Domain | IsolatedStorageScope.Assembly | IsolatedStorageScope.User), null, null)) 
     { 
      using (StreamWriter myWriter = new StreamWriter(XMLFile.readingXML(PathToXMLFile), true)) 

      { 
       if (whoDidIt == "") 
       { 

       } 
       else 
       { 
        myWriter.WriteLine(whoDidIt); 
       } 
      } 
     } 

     } 

これは私の道です。私はフォルダを開いて書き込む特別な許可を持っていますが、私の同僚はしません。私は彼らにこの許可を与えることを許可していません。

私はそれが現在のユーザー、古いヘッドセットと新しいヘッドセットを影響を受けている薬の名前、およびプルする必要がある私は、このコード

LoggedFile.CreateFileOrAppend(Environment.UserName.ToUpper() + "-" + Environment.NewLine + "Replacement Headset To: " + AgentName + Environment.NewLine + "Old Headset Number: " + myDatabase.oldNumber + Environment.NewLine + "New Headset Number: " + HSNumber + Environment.NewLine + "Date: " + DateTime.Now.ToShortDateString() + Environment.NewLine); 

を変更する方法をデータベースを設定するには、私の場合それが起こった時。

答えて

0

ファイルを作成するときに、要件を満たすためにアクセスルールを設定する必要があります。 。

File.SetAccessControl(string,FileSecurity) 

下リンクはまた、例えば https://msdn.microsoft.com/en-us/library/system.io.file.setaccesscontrol(v=vs.110).aspx

を有する入力パラメータである「FileSecurity」クラスオブジェクトは、グループレベルの制御を含むアクセスルールを設定する機能を有しています。リンクの下の は私が必要とするデータを記録するための別のルートを取るつもりですので、この質問は新しい質問の下に開かれる例 https://msdn.microsoft.com/en-us/library/system.security.accesscontrol.filesecurity(v=vs.110).aspx

+0

ありがとうございましたこれはデータベースとしてではありますが、いくつかの表を超えています。下の行をSQL​​データベースにどのように置くことができますか? '+ AgentName + Environment.NewLine + "古いヘッドセット番号:" + myDatabase.oldNumber + Environment.NewLine + " - " LoggedFile.CreateFileOrAppend(Environment.UserName.ToUpper()+ " - " + Environment.NewLine +新しいヘッドセット番号: "+ HSNumber + Environment.NewLine +" Date: "+ DateTime.Now.ToShortDateString()+ Environment.NewLine); 'これは、記録するためにログファイルが必要なもののほんの一例です – user6840698

+0

残念です。私はあなたの言うことが理解できなかった。もう少しヒントをお願いしますか? – Naidu

+0

私が理解したことは、関数呼び出しのコードスニペットをSQLテーブルに追加することです。もしそうなら、私はそれについてあまり考えていない。しかし、セキュリティルールでは、ファイルを作成するとすぐにC#のソースコードを追加することができます。 – Naidu

0

を持っているので、私は何をするつもりです助け

関連する問題