2016-04-09 51 views
0

Windows'da ve iki metin dosyasını karşılaştırmak için diff kullanıyorum. O benim gösterir dosyası başka 2GB ile 2GB dosyayı karşılaştırarak başladığında, küçük dosyalar için başarılı çalışma fakat:diff: metin dosyası izni reddedildi

diff: C:/inetpub/wwwroot/webclient/database_sequences/est_mouse_2.txt: Permission denied 

Kodum:

$OldDatabaseFile = "est_mouse_1"; 
$NewDatabaseFile = "est_mouse_2"; 
shell_exec("C:\\cygwin64\\bin\\bash.exe --login -c 'diff $text_files_path/$OldDatabaseFile.txt $text_files_path/$NewDatabaseFile.txt > $text_files_path/TempDiff_$OldDatabaseFile$NewDatabaseFile.txt 2>&1'"); 

est_mouse_1.txt ve est_mouse_2.txt bana tarafından oluşturulur ve ben kontrol dosya izni ve klasör izni, tam kontrol. Ve karşılaştırdığım diğer tüm metin dosyaları aynı klasörde ve başarıyla karşılaştırıldı.

Herhangi bir fikrin var mı?

+2

Hangi dosya sistemini kullanıyorsunuz? 2 GB'nin üzerinde bir MS-Windows sistemi boyutuna sahip dosyalar için ciddi sınırlamalar olduğunu unutmayın. – arkascha

+0

@arkascha Bunu nasıl bilebilirim? Windows 7 64bit – sara

+0

WIn32 veya Win64 kullanıyorum? "Yönetici olarak" kodunu başlatır mısın? – Eugene

cevap

1

Bu işlem için cygwin kullanıyorsunuz, Cygwin'in yığını genişletilebilir. Ancak, sabit bir boyutta başlıyor ve daha önce Windows tarafından tahsis edilmiş olan belleğe uzanmaya çalışılıyor. Yığın belleği, işlemler sanal belleğinde (VM) mevcut en büyük boş bloğun boyutuna kadar tahsis edilebilir. 64 bit sistemlerde bu, bu yürütülebilir dosyadan başlatılan bir işlem için 4 GB'lik bir VM'ye neden olur. İki 2GB dosyasını neden karşılaştırılamayacağınızı düşünüyorum, hatanın oldukça garip olduğunu kabul ediyorum, ancak belleğe erişiminizin sınırlı olduğunu açıklıyor. Daha fazla bilgi için lütfen cygwin user guide'a bakın.

+0

Küçük metin dosyaları için çalışıyordu. Bu sorun, büyük metin dosyalarını karşılaştırdığımda görünür. RAM'ım 4 GB. RAM'imi değiştirirsem problemin çözüleceğini düşünüyor musunuz? Bence ilgili değil ama neden büyük dosyalar halinde ortaya çıkıyor? – sara

+0

Hayır, bence bu cygwin problemi. Cygwin'i kullanman neden bu kadar önemli? Cygwin maksimum seviyesine sadece neden küçük dosyalarla çalıştığına ulaşıyorsunuz. – Eugene

+0

Mezuniyet projemde kullanıyorum. proje süreçlerimden biri 2 metin dosyasını karşılaştırmak ve farklılıkları bulmaktır. – sara