2016-10-03 43 views
0

我想在特定文件夹中添加或修改文件时获取文件信息。我尝试在C#中使用File Watcher,但它无法正常工作。如果还有其他的方法,请让我知道。我正在寻找写在C#或Java中。这是我的代码。在特定文件夹中添加(创建)或修改文件时获取文件元数据信息

private void fswBarCode_Changed(object sender, FileSystemEventArgs e) 
{ 
    try 
    { 
     RequestsManager objRequestsManager = new RequestsManager(); 
     Requests objRequests = new Requests(); 
     DataTable dt = (DataTable)objRequestsManager.GetPendingRequests(); 
     List<Requests> lstRequest = new List<Requests>(); 

     foreach (DataRow dr in dt.Rows) 
     { 
      objRequests = new Requests(); 
      objRequests.RecipeID = Convert.ToInt32(dr["intRecipeID"]); 
      objRequests.ChemicalReqID = Convert.ToInt32(dr["intCRHeaderID"]); 
      lstRequest.Add(objRequests); 

     } 

     if (e.ChangeType == System.IO.WatcherChangeTypes.Changed) 
     { 
      FileInfo file = new FileInfo(e.FullPath); 
      string fileName = file.Name; 

      char[] ch = { '.' }; 
      string strrecipeID = fileName.Split(ch)[0]; 
      int intRecipeID = Convert.ToInt32(strrecipeID); 

      if (lstRequest.Count() != 0) 
      { 
       lstRequest = (from lst in lstRequest 
           where lst.RecipeID.Equals(intRecipeID) 
           select lst).ToList(); 
       if (lstRequest.Count() != 0) 
       { 
        bool blIsSuccess = objRequestsManager.SaveChemicalRequisitions(lstRequest); 
        if (blIsSuccess == true) 
        { 
         Logger.LoggIssueItems(strrecipeID); 
         List<Requests> lstRequest1 = (List<Requests>)PendingRequests(); 
        } 
       } 

      } 

     } 
    } 
    catch (Exception ex) 
    { 

     Logger.LoggError(ex, "fswBarCode_Changed"); 

    } 
} 
+0

向我们展示你到目前为止已经试过什么,我们会帮你。 Stackoverflow不在这里为你写代码。 –

回答

0

您可以通过使用Java NIO API,如下面

的java.nio.file包及其相关包装, java.nio.file.attribute实现这一目标,提供文件的全面支持I/O 以及访问的默认文件系统

BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class); 

System.out.println("creationTime: " + attr.creationTime()); 
System.out.println("lastAccessTime: " + attr.lastAccessTime()); 
System.out.println("lastModifiedTime: " + attr.lastModifiedTime()); 
相关问题