file_exists& is_file无法正常工作

时间:2017-08-29 12:43:35

标签: php sqlite

我正在使用此代码:

$DataSourceName = "..\Log4OM\Log4OM-Active.SQLite";
if(!file_exists($DataSourceName))
{
    $Msg = sprintf("%s does not exist", $DataSourceName);
    die($Msg);
}

该文件确实存在,此路径一直工作到今天早上。现在测试失败,应用程序死了。 “is_file”不会更好。

我也使用这段代码:

$connection = new PDO("sqlite:".$DataSourceName);
    // Set errormode to exceptions
$connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

这实际上打开了文件并且应用程序正常运行。我知道这是因为我击败了第一个尝试它的测试。不幸的是,在我到达“$ connection =”行之前,第一次测试必须通过。

我也试过fopen,无法打开文件。文件名实际上是真实文件的硬链接,但替换真实文件名也有同样的问题。文件权限看起来是正确的,与几天前一样。

1 个答案:

答案 0 :(得分:5)

不要依赖目录"行走"。始终指定您从哪里开始的根(例如)foreach($file in Get-ChildItem C:\users\xx\Desktop\mappcent3 |Where {-not $_.PsIsContainer}) { $FirstKeyword = 'FirstKeyword' $FirstLine = Select-String -Path $file.FullName -Pattern $FirstKeyword -Context 0,1 |Select -Expand Context -First 1 |Select -Expand PostContext $SecondKeyword = 'SecondKeyword' $SecondLine = Select-String -Path $file.FullName -Pattern $SecondKeyword -Context 0,1 |Select -Expand Context -First 1 |Select -Expand PostContext New-Object psobject -Property @{$FirstKeyword=$FirstLine;$SecondKeyword=$SecondLine} |Export-Csv (Join-Path $file.DirectoryName ($file.BaseName + '_keywords.txt')) }

__DIR__