Avatar billede tentakkel Nybegynder
09. september 2007 - 21:07 Der er 11 kommentarer og
1 løsning

skriv til skjulte filer

Hej.

Jeg skal åbne en fil, erstatte noget og skrive det til filen igen. Det skulle jo ikke være noget problem, men havde gevaldige problemer med nogen filer.

Det viste sig at det er fordi de er sat til at være "skjulte" i internet explorer.

Ikke skrivebeskyttede, bare skjulte...

er der nogen der har mødt det problem før? Jeg synes ikke jeg kan finde noget sted der beskriver at der skulle være et problem med at skrive til skjulte filer...


- Mathias
Avatar billede olebole Juniormester
09. september 2007 - 21:11 #1
<ole>

Kan du ikke bare gøre dem 'synlige'?

/mvh
</bole>
Avatar billede tentakkel Nybegynder
09. september 2007 - 21:17 #2
Jeg burde nok ha udspecificeret lidt.

JEg har prøvet at finde frem til hvordan man skjuler/unskjuler filer. Har ikke været mig muligt.

Har prøvet at læse filerne med diverse parameter til fwrite (w, w+ osv.). har prøvet file_put_content.

Det er et system der skal virke på filer der bliver genereret af et andet program (som skjulte)...
Avatar billede tentakkel Nybegynder
09. september 2007 - 21:19 #3
fwrite hov... mener naturligvis fopen
Avatar billede olebole Juniormester
09. september 2007 - 21:28 #4
Jamen, det er ikke noget, du kan gøre via PHP. Er det din egen server - og/eller: Har du adgang til filerne?
Avatar billede olebole Juniormester
09. september 2007 - 21:29 #5
- fysisk adgang til filerne, mente jeg  :)
Avatar billede tentakkel Nybegynder
09. september 2007 - 21:32 #6
Ja. alt er mit eget.

Projektet går sådanset ud på at lave en bacthrenamer til billedefiler hvor jeg med regexp kan styre hvilke dele af det gamle navn jeg vil genbruge OG så rette navnet i den  picasa.ini fil som ligger i mappen for at filerne stadig vises korrekt i picasa...

måske jeg var lidt doven da jeg kastede mig ud i det med php.

hmm. måske en exec kommando kan trylle lidt. Har du nogen ide om hvordan man ændre skjul/ikkeskjul i cmd på en windows?
Avatar billede olebole Juniormester
09. september 2007 - 21:37 #7
Kan du ikke sætte det andet program til at spytte 'synlige' filer ud? Hvad er det for et program?
Avatar billede olebole Juniormester
09. september 2007 - 21:41 #8
Ellers kan du skrive dette i en fil og kalde den 'bla.vbs' og kalde den:

Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFile("C:/Sti/Til/fil.php")
If f.attributes And 2 Then
    f.attributes = f.attributes - 2
End If
Avatar billede olebole Juniormester
09. september 2007 - 21:42 #9
- hvis det altså er en Vindåse  ;o)
Avatar billede olebole Juniormester
09. september 2007 - 21:44 #10
PS: og jeg må hellere lige fortælle, at scriptet gør den pågældende fil 'synlig', hvis den var 'gemt'  :)
Avatar billede tentakkel Nybegynder
09. september 2007 - 21:50 #11
Det er google behagelige billedeprogram Picasa. Så det får jeg dem nok ikke til.

Jeg gravede lidt i at gøre den synlig. fandt det (på en youtube video :-S) For søren. Det er naturligvis ATTRIB jeg skal bruge.

Til andre med samme problem; Den endelige kode blev:

$content = file_get_contents($file);
$content = str_replace($data['find'], $data['replace'], $content);
exec("ATTRIB \"$file\" -H");
file_put_contents($file,$content);
exec("ATTRIB \"$file\" +H");

Kompatibel med php5. Hvis exec ikke virker så er det nok fordi PHPen er konfigureret fornuftigt (altså så man ikke kan køre den kommando...)
Avatar billede tentakkel Nybegynder
10. september 2007 - 11:49 #12
Til andre i samme problem:

Nå ja... Måske filen ikke far skjult få forhåd. Så skal vi lige have en lille mekanisme på der husker tilstanden...

$content = file_get_contents($file);
$content = str_replace($data['find'], $data['replace'], $content);
if($cmdThis){
$svar = array();
exec("ATTRIB \"$file\"", $svar);
$isHidden = ('H' == $svar[0][4]);
if($isHidden)
exec("ATTRIB \"$file\" -H");
file_put_contents($file,$content);
if($isHidden)
exec("ATTRIB \"$file\" +H");
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester